对象数组题目:
定义类Student,包含三个属性:学号number(int),年级state(int),成绩
score(int)。创建20个学生对象, 学号为1到20,年级和成绩都由随机数确定。
问题一:打印出3年级(state值为3)的学生信息。|
问题二:使用冒泡排序按学生成绩排序,并遍历所有学生信息
提示:
1)生成随机数: Math.random(), 返回值类型double;
2)四舍五入取整: Math.round(double d), 返回值类型long。
/*
* 定义一个学生类
* */
public class Student {
//定义属性
int number;
int state;
int score;
//打印学生信息的方法,代码复用
public void showStuinfo(){
System.out.println("number="+number+",state="+state+",score="+score);
}
}
/*
* 创建一个学生测试类
* */
public class StudentTest {
public static void main(String[] args) {
//创建一个动态数组,数据类型为引用数据类型
Student[] studentarr = new Student[20];
//用for循环创建对象
for (int i = 0; i < 20; i++) {
//new出一个对象
Student student = new Student();
//给对象的属性赋值
student.number = i + 1;
student.state = (int) (Math.random() * 10) + 1;
student.score = (int) (Math.random() * 100);
//将new出的地址值赋给数组
studentarr[i] = student;
//打印3年级学生信息
if (studentarr[i].state == 3) {
student.showStuinfo();
}
}
System.out.println("*********************");
//打印全部的学生信息
for (int i = 0; i < studentarr.length; i++) {
studentarr[i].showStuinfo();
}
System.out.println("*********************");
//冒泡排序
//外层循环
for (int i = 0; i < 20; i++) {
//内层循环
for (int j = 0; j < (20 - i - 1); j++) {
if (studentarr[j].score > studentarr[j + 1].score) {
Student swap = studentarr[j];
studentarr[j] = studentarr[j + 1];
studentarr[j + 1] = swap;
}
}
}
System.out.println("__________________________");
for (int i = 0; i < studentarr.length; i++) {
studentarr[i].showStuinfo();
}
}
}