参考链接: 如何在Java中交换或交换对象

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 问题拆分

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

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

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中main()的有效变体 java中对数组进行排序 Java Array is like a container that can hold a fixed number of t ...

  2. Java中对象数组的使用

    Java对象数组使用 一.Java数组的使用 二.Java的对象数组 2.1 问题提出 2.2 问题解析 2.3 问题拆分 2.4 代码实现 一.Java数组的使用 对象数组其实和Java的数组类似的 ...

  3. [转载] Java中Array(数组)转List(集合类)的几种方法

    参考链接: Java中的数组类Array 1.循环.新建List类,循环填充. 2.利用Arrays类的静态方法asList(). Arrays.asList(T[])返回Arrays类的一个内部内L ...

  4. [转载] java中对象作为参数传递给一个方法,到底是值传递,还是引用传递

    参考链接: 用Java传递和返回对象 看完绝对清晰~ java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? pdd:所谓java只有按值传递:基本类型  值传递:引用类型,地址值传递,所 ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 自定义异常类: 运行期间跟编译期间的区别
  2. mysql时间相减得到毫秒值_Mysql 字符串、时间、时间戳相互转换,相减获取秒数...
  3. linux smplayer 快捷键,SMPlayer:让 MPlayer 的使用更简单
  4. matlab 十六进制数组,【MATLAB】MATLAB中读取二进制数据文件并加入到矩阵中
  5. SwaggerUI看烦了,IGeekFan.AspNetCore.Knife4jUI 帮你换个新皮肤
  6. 如何使用eclemma插件_如何集成和使用EclEmma插件来获得良好的Junit覆盖率
  7. .dll文件存在但是不显示_一招巧妙解决U盘内文件明明存在,打开U盘而内容却不显示的问题...
  8. android 加载网络bitmap图片 oom 简书_Android常见问题--ImageView加载图片OOM
  9. Python二级笔记(6)
  10. (108)FPGA面试题-介绍STA静态时序分析及其作用
  11. 指标命名随意,增加沟通成本,套用这个公式,学会规范化定义指标
  12. 【译】Input Method Manager (IMM):输入法管理器
  13. Python Project Euler 013:100个50位数和
  14. 雾里看花之 Python Asyncio
  15. java 万年历_java万年历代码仅供参考
  16. Audition CC 2019 Essential Training AuditionCC 2019基本训练 Lynda课程中文字幕
  17. 电视与电脑连接html线,电视机与电脑连接的方法
  18. 最新四川大学软件工程课程期末官方复习知识点提纲
  19. 巨头都在追逐的眼球追踪技术,究竟能带来什么?
  20. oracle临时表经常被锁_linux安装oracle

热门文章

  1. (十二)linux内核定时器
  2. tuxedo错误码6_TUXEDE返回的所有错误代码
  3. 什么是机器人的五点校正法_机器人校正方法
  4. android手机电话铃声设置,安卓手机铃声怎么设置
  5. c语言jt808协议库,平台如何应答——关于JT/T808协议
  6. php页面的循环输出数组,PHP抓取页面上的数组 并循环输出 急
  7. sqli-lab——Writeup21~38(各种过滤绕过WAF和)
  8. html5+shim脚本,HTML5探秘:用requestAnimationFrame优化Web动画
  9. python是强定义语言吗_python是强类型语言吗
  10. php swoole 心跳,聊聊swoole的心跳