Java对象数组使用

  • 一、Java数组的使用
  • 二、Java的对象数组
    • 2.1 问题提出
    • 2.2 问题解析
    • 2.3 问题拆分
    • 2.4 代码实现

一、Java数组的使用

对象数组其实和Java的数组类似的,所以要很清楚Java的数组是如何使用的,如果有不懂的可以点下面这个链接Java数组的使用

二、Java的对象数组

2.1 问题提出

为什么会有对象数组呢?假定有这种情况,我们需要录入一个班级同学的姓名,学号,和成绩,然后对成绩进行排序,以降序或者升序进行排列,这个时候就会有人跳出来说,我用一个字符串数组存储姓名,然后再用一个二维数组存放学号和成绩,然后根据程序的高低进行排序。

2.2 问题解析

NONONO!今天我们来教大家如何使用对象数组来解决这个问题,对象数组,我们前面学过Java(OOP)编程—(Java OOP编程),想必大家也对面向对象这个词也会稍微有了一些了解,对象数组就是可以存放多种不同的数据类型,然后我们通过对象来调用我们所存放的数据。

接下来我就来告诉大家如何使用对象数组,完成这个成绩排序的问题

2.3 问题拆分

我们可以把问题简化一下,输入五个学生的成绩,然后进行排序打印输出

  1. 先创建一个学生类
  2. 给学生类添加学生的信息—姓名,学号,成绩,然后分别生成有参和无参的构造方法
  3. 再创建一个学生测试类
  4. 创建对象数组,给对象数组申请 5 个空间
  5. 循环录入信息
  6. 根据学生成绩进行排序,然后打印输出
2.4 代码实现

创建一个学生类的属性,包括学生的姓名,学号,成绩
为了方便,我把两个文件放进了同一个包中使用

package A
/*** @author gorit* @date 2019年4月10日* 对象数组学生类的创建* */
public class Student {private String name;//学生的姓名private int num;//学生的学号信息private int grades;//学生的成绩//有参的构造方法public Student(String name, int num, int grades) {super();this.name = name;this.num = num;this.grades = grades;}//无参的构造方法public String getName() {return name;}public void setName(String name) {this.name = name;}public int getNum() {return num;}public void setNum(int num) {this.num = num;}public int getGrades() {return grades;}public void setGrades(int grades) {this.grades = grades;}public Student(){}}

然后就是学生类的测试类

package A
/*** @author gorit* @date 2019年4月10日* 对象数组的实例讲解* */
import java.util.Scanner;public class StudentTest {public static void main(String[] args) {System.out.println("请录入学生姓名,学号、成绩:");Scanner in=new Scanner(System.in);
//      int[] a=new int[3];对照数组的使用
//      1、创建对象数组,Student类有三个属性,所以传入数据需要传三个数据Student[] s=new Student[5];//对象数组的创建是一样的for (int i = 0; i < s.length; i++) {//还可以一个个输入s[i].getName,s[i].getNum,s[i].getGrade,一个个输入,用下面的方法更加快捷s[i]=new Student(in.next(),in.nextInt(),in.nextInt());}Student s1=null;//创建一个为空的对象进行数据交换//根据学生的成绩进行排序,这里运用冒泡排序for(int i=0;i<s.length;i++) {for (int j =0; j < s.length; j++) {if(j!=4)//这里必须加上这个条件,不然数字会报出越界的问题if(s[j].getGrades()<s[j+1].getGrades()) {s1=s[j+1];s[j+1]=s[j];s[j]=s1;}}}System.out.println("学生的成绩排名如下\n姓名\t学号\t成绩");for (int i = 0; i < s.length; i++) {System.out.println(s[i].getName()+"\t"+s[i].getNum()+"\t"+s[i].getGrades());}}
}

程序运行结果

Java中对象数组的使用相关推荐

  1. [转载] Java中对象数组的使用

    参考链接: 如何在Java中交换或交换对象 Java对象数组使用 一.Java数组的使用二.Java的对象数组2.1 问题提出2.2 问题解析2.3 问题拆分2.4 代码实现 一.Java数组的使用 ...

  2. java中对象数组如何构造_对象数组如何构造

    定义一个对象数组时是如何调用构造函数和析构函数的 #include #include using namespace std; //对象数组的初始化请看该函数 class student { publ ...

  3. Java 中对象数组的简单存入与取出

    最近在写将画出来的几个图形存入对象数组中,然后通过滑杆调节图形大小,通过逐个读取数组重绘图形. 先建一个图形类,图形的属性有起始坐标 x,y,以及宽和高w,h,以及图形的名字name: public ...

  4. java对象数组_Java中对象数组的使用方法详解

    本文实例讲述了Java中对象数组的使用方法.分享给大家供大家参考,具体如下: 一 点睛 对象可以用数组来存放,通过下面两个步骤来实现. 1 声明以类为数据类型的数组变量,并用new分配内存空间给数组. ...

  5. java中的对象数组_Java中对象数组的使用方法详解

    本文实例讲述了java中对象数组的使用方法.分享给大家供大家参考,具体如下: 一 点睛 对象可以用数组来存放,通过下面两个步骤来实现. 1 声明以类为数据类型的数组变量,并用new分配内存空间给数组. ...

  6. 四十三、深入Java中的数组流,数据流和对象流操作

    @Author:Runsen @Date:2020/6/8 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

  7. java 静态对象数组_Java静态方法和实例方法 java中的数组作为形参传入

    原标题:Java静态方法和实例方法 java中的数组作为形参传入 Java静态方法和实例方法 java中的数组作为形参传入 Java虚拟机 启动一个Java程序的时候,会诞生一个虚拟机实例,当程序关闭 ...

  8. js解析java对象数组_js接收并转化Java中的数组对象的方法

    在做项目时,要向ocx控件下发命令,就要在js中得到java中的对象,然后拼成一种格式,下发下去...当对象是一个时比较简单,但如果对象是一个数组时,就略显麻烦了. 开始我以为有简单的方式,可以直接进 ...

  9. js接收java数组对象_js接收并转化Java中的数组对象的方法

    在做项目时,要向ocx控件下发命令,就要在js中得到java中的对象,然后拼成一种格式,下发下去...当对象是一个时比较简单,但如果对象是一个数组时,就略显麻烦了. 开始我以为有简单的方式,可以直接进 ...

最新文章

  1. UA MATH524 复变函数9 柯西公式与幂级数展开
  2. java与java ee_Java EE MVC:处理表单验证
  3. svn忽略指定文件夹下的文件_管理SteamLibrary文件夹下的acf文件
  4. 推荐阅读-Docker实现原理之Namespace,CGroup
  5. how tomcat works(第15章: Digester)
  6. 总结const、readonly、static三者的区别【收藏、转载】20190614
  7. 最近啃的有点多了,乱了
  8. ICML2018论文公布!一文了解机器学习最新热议论文和研究热点
  9. 用Flash CS4打开fla文件提示“意外的格式”的解决方法
  10. 省级c语言笔试题,C语言笔试题库.doc
  11. C语言编写贪吃蛇-链表的使用
  12. 汇编指令:CLD STD MOVS LODS STOS
  13. Android重力感应器入门介绍
  14. php 自己画地图,绘制自己的独家地图
  15. 质量管理的三大概念:QA,QC,QM,你能给自己准确定位吗?
  16. TikTok与抖音有什么不同?为什么TikTok被称为“海外版抖音”?
  17. 读书笔记:时间与精力管理:你的精力管理决定你的人生层次
  18. ceph v15.2.13版本[octopus]分布式集群部署
  19. 144hz和60hz测试软件,关于显示器,60hz与144hz,以个人角度,给大家分享心得…
  20. c语言第十五周答案,C语言考前练习试题及答案

热门文章

  1. 【算法】算法分析与设计的基本方法
  2. 关于tomcat中Servlet对象池
  3. 中M22春C、Java入门练习-7.9
  4. 圆周运动、一般曲线运动、阿基米德螺旋线
  5. tomcat正常启动无法访问webapps下的文件
  6. leetcode——背包系列
  7. 腹外斜肌(04):负重体侧屈
  8. 再见了,12306!春节回家第一抢票神器,GitHub上25万Star
  9. [原创]C# 操作Excel的类
  10. 放大格局,放小自己 |【常垒·常识】