前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Java中对象数组的使用

Java中对象数组的使用

作者头像
Gorit
发布2021-12-09 15:00:34
发布2021-12-09 15:00:34
7K00
代码可运行
举报
运行总次数:0
代码可运行

Java对象数组使用

代码语言:txt
复制
    - [一、Java数组的使用](https://cloud.tencent.com/developer)
    - [二、Java的对象数组](https://cloud.tencent.com/developer)
            - [2.1 问题提出](https://cloud.tencent.com/developer)
            - [2.2 问题解析](https://cloud.tencent.com/developer)
            - [2.3 问题拆分](https://cloud.tencent.com/developer)
            - [2.4 代码实现](https://cloud.tencent.com/developer)

一、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 代码实现

创建一个学生类的属性,包括学生的姓名,学号,成绩

为了方便,我把两个文件放进了同一个包中使用

代码语言:javascript
代码运行次数:0
运行
复制
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(){}

}

然后就是学生类的测试类

代码语言:javascript
代码运行次数:0
运行
复制
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());
		}
		
	}
}

程序运行结果

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/04/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java对象数组使用
  • 一、Java数组的使用
  • 二、Java的对象数组
    • 2.1 问题提出
    • 2.2 问题解析
    • 2.3 问题拆分
    • 2.4 代码实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档