public class ExerTest {
public static void main(String[] args) {
//声明student类型的数组
Student[] stus = new Student[20];
for(int i = 0;i < stus.length;i++) {
//给数组元素赋值
stus[i] = new Student();
//给Student对象的属性赋值
stus[i].number = (i + 1);
//年级[1-6];
stus[i].state = (int)(Math.random()*(6-1+1)+1);
//成绩[0-100];
stus[i].score = (int)(Math.random()*(100-0+1));
}
//遍历学生数组
for(int i = 0;i < stus.length;i++) {
// System.out.println(stus[i].number + "\t"
// + stus[i].state + "\t" + stus[i].score + "\t");
System.out.println(stus[i].info());
}
System.out.println("*******************");
//问题一:打印三年级(state值为3)的学生信息。
for(int i = 0;i < stus.length;i++) {
if(stus[i].state == 3) {
System.out.println(stus[i].info());
}
}
class Student{
int number;
int state;
int score;
//显示学生信息的方法
public String info() {
return"学号" + number +",年级"+ state + ",成绩" + score;
}
}
1、 String info()方法是Student类中的有返回值的方法,返回相关学生信息,调用info的地方就能获取到返回的字符串,通过System.out.println输出。
2、stus[i] = new Student();stus[i]表示每一个学生对象,Student类中包含number、status、score属性,通过对象可以直接获取当前类Student中的属性。
就是stus数组里每个都是student对象,循环调用自己的info方法,输出自己的信息
数组stus里面的每个元素(即stus[i])都是一个Student类的对象,对象里面有info方法,类似于下面这样调用:
Student stud = new Student();
stud.info();
1.首先for循环每次new Student会产生一个新对象,循环20次会产生20个不同的对象。
2.当stus.[i]会取出每一个对象,而每一个对象的info方法就是拼接学号、成绩等信息,其实“学号”+number+“,年级”+state就等于,this.state,this.number,this就是stus[i]这个对象,所以自然能取到。
-
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!