数组作成员变量的应用。
题目:定义学生类Student,可以存放每个学生的姓名、年龄、课程数目、成绩,其中成绩定义为数组类型,可存放多门课程的成绩。该类还包含两个成员方法:能够设置各属性值,能够输出所有信息。
要求:在主类的 main 方法中定义 Student 类的对象数组。提示用户确定学生的个数,然后给每个学生输入各方面信息,最后集体显示在屏幕上。
package Section3;
import java.util.Scanner; //引入java.util包里的Scanner类
class Student{ //定义学生类
String name; //姓名
int age; //年龄
int number; //课程数目
double score[]; //成绩数组
void setItem(String n,int a,int num,double s[]) { //设置成员值
name = n;
age = a;
number = num;
score = new double[number]; //根据课程数目创建成绩数组
for(int i=0;i<number;i++) //循环给每个成绩元素赋值
score[i] = s[i];
}
void printInfo() { //输出各项信息
System.out.println("姓名是:"+name+"\n年龄是:"+age);
for(int i=0;i<number;i++)
System.out.println("第"+(i+1)+"门课的成绩是:"+score[i]);
}
}
public class StudentTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner reader = new Scanner(System.in);
System.out.println("请确定学生人数:");
int m = reader.nextInt();
Student stu[] = new Student[m]; //根据学生人数创建stu数组
for(int j=0;j<m;j++) { //循环对每个数组进行操作
//读入一系列当前元素的各项数据
System.out.println("请输入第"+(j+1)+"个姓名:");
String n = reader.next();
System.out.println("请输入第"+(j+1)+"个年龄:");
int a = reader.nextInt();
System.out.println("请输入第"+(j+1)+"个课程数目:");
int num = reader.nextInt();
double s[] = new double[num]; //根据课程数目创建数组s
for(int i=0;i<num;i++){ //读入相应数目成绩存至s各数组元素
System.out.println("请输入第"+(i+1)+"门课的成绩:");
s[i] = reader.nextDouble();
}
stu[j] = new Student(); //创建当前stu数组元素引用的Student对象
stu[j].setItem(n, a, num, s); //设置当前元素各项成员数据
stu[j].printInfo(); //输出当前元素全部信息
}
}
}