对象数组快速掌拨 java 0913
什么是对象数组
先说什么是数组
数组是有序数据容器
保存基本数据类型的数据
什么是对象数组
对象数组也是数据容器
保存的是用户自定义的一些对象
如何定义对象数组
普通数组如何定义?
定义一个整数数组,容量为5,编码如下
int[] numArray = new int[5];
格式小结
类型名[] 变量名 = new 类型名[长度];
对象数组定义格式同上
类名称[] 变量名 = new 类名称[长度];
这样可以定义一个,指定长度的数组
专门存放对象的(对象必需由这个类实例化的才可)
创建一个对象数组
// 新一个对象数组 长度为4,可以保存四个学生对象
Student[] stuArray = new Student[4];
数组创建出来,相当于这样的效果
null是对象数组每个下标对应的默认值
给对象数组的空间内添加成员
数组[下标] = 对象;
代码
// 新一个对象数组 长度为4,可以保存四个学生对象
Student[] stuArray = new Student[4];
// 0号位置放张三
stuArray[0] = zs;
// 1号位置放李四
stuArray[1] = ls;
// 2号位置放王五
stuArray[2] = ww;
效果
对象数组的遍历
一旦遍历获取了数组中每个下标对应的值
这个值就是一个又一个对象
就是我们放进去的对象
这个对象是具有它自有的属性的,比如name与number
因为
当前例子的对象的类是这样定义的
public class Student {
// 学号
int number;
// 姓名
String name;
}
所以
// 遍历对象数组
for (int i = 0; i < stuArray.length; i++) {
// for拿到了下标,通过 数组【下标】可以获取数组下标对应的值
// 数组下标对应的值是什么? 是一个一个的对象
// 所以 数组【下标】 就是对象。 然而,对象是具有属性的。
// 所以 数组【下标】.属性 ,是可以访问到对象的值的
System.out.println("遍历得到的对象的打印:" + stuArray[i]);
// 如果下标对应的值不是null,那就是对象。 如果是null就跳过
if (stuArray[i] == null) {
System.out.println("不是对象,没有name与number属性");
continue;
}
System.out.println("该对象的name属性值是:" + stuArray[i].name);
System.out.println("该对象的number属性值是:" + stuArray[i].number);
结果
遍历得到的对象的打印:Student@591c5342
该对象的name属性值是:张三
该对象的number属性值是:1
遍历得到的对象的打印:Student@529e3fc2
该对象的name属性值是:李四
该对象的number属性值是:2
遍历得到的对象的打印:Student@136c03ee
该对象的name属性值是:王五
该对象的number属性值是:3
遍历得到的对象的打印:null
不是对象,没有name与number属性
小结
对象数组
是对象的容器
所以
对象数组[下标] 如果不是null 就是一个对象
对象的属性和方法都是可以调用的
可以通过
对象数组【下标】.属性 获取指定下标的属性值
对象数组【下标】.方法() 调用对象的某一个方法