大家好,又见面了,我是你们的朋友全栈君。
Java对象数组
在创建后,基本数据类型数组可以直接对数组元素赋值、引用等操作;而自定义对象数组,需要对数组中的每个对象元素独立进行创建,然后才可以对其赋值、引用等操作,如果没有单独对每个对象元素创建,会导致空指针异常
1.基本数据类型数组
数组都要先声明、再创建后使用。基本数据类型数组的声明有以下几种格式(以int类型为例):①int[]array;②int[]array=new int;③int[]array={1,2,3};int[]array=newint[]{1,2,3};以上几种格式对数组内容操作,分为对数组的动态初始化和静态初始化两种形式。
2.自定义对象数组
自定义对象数组,它们由同一个类的多个具体实例有序组成。我们熟悉的主方法中的string args接收初始化参数时,参数就是一个典型的对象数组案例。由于其每个元素都是引用数据类型,数组在创建后,必须对每个对象分别进行实例化创建。
以自定义学生类student为例
public class Student
{
// 成员变量
private String name;
private int age;
// 构造方法
public Student()
{
super();
}
public Student(String name, int age)
{
super();
this.name = name;
this.age = age;
}
// 成员方法
// getXxx()/setXxx()
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
@Override
public String toString()
{
return "Student [name=" + name + ", age=" + age + "]";
}
}
public class Practice
{
public static void main(String[] args)
{
// 创建学生数组(对象数组)。
Student[] students = new Student[5];
// for (int x = 0; x < students.length; x++)
// {
// System.out.println(students[x]);
// }
// System.out.println("---------------------");
// 创建5个学生对象,并赋值。
Student s1 = new Student("小一", 27);
Student s2 = new Student("小二", 30);
Student s3 = new Student("小四", 30);
Student s4 = new Student("小五", 12);
Student s5 = new Student("小六", 35);
// 将对象放到数组中。
students[0] = s1;
students[1] = s2;
students[2] = s3;
students[3] = s4;
students[4] = s5;
// 遍历
for (int x = 0; x < students.length; x++)
{
//System.out.println(students[x]);
Student s = students[x];
System.out.println(s.getName()+"---"+s.getAge());
}
}
}
注意:对象数组在经过创建后只建立了栈内存的地址空间,因此在没有对每个数组中的对象创建时输出全部为null,只有经过每个对象实例的独立地开辟堆内存空间,才能正确初始化对象数据。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160417.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...