java使用对象数组完成打印,Java中对象数组的使用

一、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

for (int j =0; j < s.length; j++) {

if(j!=4)//这里必须加上这个条件,不然数字会报出越界的问题

if(s[j].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());

}

}

}

程序运行结果:

159fb324997f7d47741188fa586660b0.png

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值