一.什么是对象数组
1.顾名思义就是当数组元素是类对象时,这样的数组称之为对象数组,在这种情况下,数组的每一个元素都是一个对象的引用。
2.对象数组,就是指包含了一组相关的对象。
二.对象数组的作用
1.数组就是一个容器,当创建了多个相同的类对象时,并且需要将这些类对象储存时,这个时候对象数组的作用就体现出来了。
2.通俗的说就是用来存多个对象的数组,将对象看成一个个数组元素
三.对象数组的语法定义
一、先定义,再开辟数组空间
类名称 对象数组名[] = null;
对象数组名 = new 类名称[长度];
二、定义并开辟数组空间
类名称 对象数组名[] = new 类名称[长度];
静态初始化:在定义数组的同时对数组元素进行初始化
Student[] student = {new Student(“小王”,20),new Student(“小明”,20),new Student(“小红”,20)};
// 这代表初始化了3个数组对象,分别是student[0],student[1],student[2]。
// 其中的"小王",20表示为对象的属性值
动态初始化:使用运算符new为数组分配空间
1.Student[] student = new Student[4];
// 这代表给student[]对象数组分配的长度为4的空间,并没有对数组的元素进行初始化。即数组元素都为空。
2.// 初始化student对象数组,否则会空值针异常
for(int i = 0;i<student.length;i++){
// 由用户自己动态决定输入数据
String id = scanner.next();
String name = scanner.next();
int age = scanner.nextInt();
student[i] = new Student(id, name, age);
}
四.对象数组案例
需求:
定义一个长度为5的数组
学生属性为:学号,姓名,班级,性别;
添加信息完毕之后,展示学生全部信息
Student学生类:
public class Student {
String sid;
String name;
String className;
String sex;
public static Scanner input=new Scanner(System.in);
@Override
public String toString() {
return "Student{" +
"sid='" + sid + '\'' +
", name='" + name + '\'' +
", className='" + className + '\'' +
", sex='" + sex + '\'' +
'}';
}
public static void luru(Student[] stu){
Student student = new Student();
System.out.println("请输入学员的学号:");
String sid = input.next();
System.out.println("请输入学员的姓名:");
String name = input.next();
System.out.println("请输入学员的班级:");
String className = input.next();
System.out.println("请输入学员的性别:");
String sex = input.next();
student.sid=sid;
student.name=name;
student.className=className;
student.sex=sex;
for (int i=0;i< stu.length;i++){
if (stu[i] ==null){
stu[i]=student;
System.out.println("添加成功");
break;
}
System.out.println("当前学生列表:");
}
for (Student s:stu ) {
if (s==null){
break;
}
System.out.println(s);
}
}
}
Test测试类:
public static void main(String[] args) {
Student[] student = new Student[5];
while (true){
luru(student);
}
}