自己定义了一个类People
然后在main中想造一个由People元素组成的数组
结果就报错了。。。何解?
public class Caogao {
public static void main(String[] args) {
People[] n = new People[3];
n[0].age = 1;
n[1].age = 2;
n[2].age = 3;
for(int i = 0; i < n.length; i++) {
System.out.println(n[i].age);
}
}
}
public class People {
int age;
double weight;
String name;
}
还是有错啊
//你多了个age。。。
n[i].age=new People() ; 改成 n[i]=new People();追问
嗯嗯。。。是对的
可是还是有点不明白,明明在这里
People[] n = new People[3];已经为n分配了内存空间,可为什么还要再在for里面在用new分配空间?
People[] n = new People[3];已经为n分配了内存空间,只是分配了空间 ,里面什么东西都没啊 ,他就相当于给人 分了三个房子,这时候 人还没住进去。 new People() 后 人才主进去了,你才能访问人的年龄等属性 。这样明白了吗?
那应该怎么改呢。。。每次赋值前都用new吗
追答public class Caogao {
public static void main(String[] args) {
People[] n = new People[3];
n[0] = new People(1);
n[1] =new People(2);
n[2] = new People(3);
for(int i = 0; i < n.length; i++) {
System.out.println(n[i].age);
}
}
}
public class People {
int age;
double weight;
String name;
public People(){
}
//加个 构造方法就好
public People(int age){
this.age = age;
}
}