嘿伙计们,问题出了问题。
问题:为变量人写一个声明,可以用来引用Person类型的对象数组
我的回答:
public people[];
people = new Person [100];
但我收到一个错误,说这是错误的。我做错了什么?
PS。我也试过public people[] = new Person [100]
我收到的错误是:
Main.java:5: <identifier> expected
public people[];
^
Main.java:6: <identifier> expected
people = new Person [100];
^
2 errors
输出应该是:如果它不正确,它将不会编译
这是实际产生的:线程“main”中的异常java.lang.NoClassDefFoundError:Main`
答案 0 :(得分:10)
public Person[] people = new Person[100];
public
是access modifier; Person[]
是Person
; people
是将引用保存到上述数组的变量的名称; new Person[100]
分配一个新的Person
类型数组,最多可存储100 Person
个。答案 1 :(得分:2)
所有java变量必须指定其类型。
Person[] people = new Person [100];
您可以为变量指定限定符。如:
final Person[] people = new Person [100]; //applies to fields and variables
private Person[] people = new Person [100]; //applies to fields only
private static volatile Person[] people = new Person [100]; //applies to fields only
答案 2 :(得分:1)
我认为这句话应该是:
Person people[];
people = new Person[100];
.OR。
Person people[] = new Person[100];
因为你的people变量属于Person类型,你应该这样声明。
答案 3 :(得分:1)
实际声明必须声明变量的名称及其类型。
Person[] people;
(变量名为“people”,其类型为“Person对象数组”。确保在某处定义了Person
!)
数组创建(非声明)实际上创建了一个给定大小的数组:
people = new Person[100];
我认为你可能已经因为组合表达的重复性而被抛弃了:
Person[] people = new Person[100];
...您指定两次类型。
答案 4 :(得分:1)
Person [] people;
people = new Person[100];
您的代码几乎是正确的(您只是忘了提供数组的类型,如上所示),但请确保您还定义了一个名为Person的类。您可以向项目中添加一个新类,并将其留空(这足以编译您的测试代码)。
public class Person {
}