oiy*_*yio 3 java arrays constructor allocation
public class Person {
public String firstName, lastName;
public Person(String firstName,
String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getFullName() {
return(firstName + " " + lastName);
}
}
Run Code Online (Sandbox Code Playgroud)
public class PersonTest {
public static void main(String[] args) {
Person[] people = new Person[20]; //this line .
for(int i=0; i<people.length; i++) {
people[i] =
new Person(NameUtils.randomFirstName(),
NameUtils.randomLastName()); //this line
}
for(Person person: people) {
System.out.println("Person's full name: " +
person.getFullName());
}
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我们使用了两次"new".这段代码是正确还是错误?第一个用于分配数组.但为什么第二个呢?这是来自讲义.
ami*_*mit 10
是的,这是正确的.
这条线:
Person[] people = new Person[20]
Run Code Online (Sandbox Code Playgroud)
分配数组,充满对null行的引用:
new Person(NameUtils.randomFirstName(),
NameUtils.randomLastName()); //this line
Run Code Online (Sandbox Code Playgroud)
通过实例化类型的对象Person并在数组中分配引用来填充它[数组] .
Tay*_*mon 10
new Person[20]创建一个可以容纳20个Person对象引用的数组.它不会创建任何实际Person对象.
new Person(...)创建一个Person对象.
这里要做的关键区别是,与C或C++不同,new Person[20]它不为20个Person对象分配内存.该数组不包含实际对象; 它只包含对它们的引用.
| 归档时间: |
|
| 查看次数: |
6952 次 |
| 最近记录: |