2009-12-31 124 views
2

嘿家伙,有一个问题有问题。声明数组变量

问题:写出可能被用来指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 

输出应该是:如果它是不正确的它不会编译

这是什么实际生产:异常在线程 “主要” java.lang.NoClassDefFoundError:Main`

回答

10
public Person[] people = new Person[100]; 
  • publicaccess modifier;
  • Person[]Person类型的数组;
  • people是变量的名称,该变量将参考保存到上述阵列;
  • new Person[100]分配一个Person类型的新阵列,能够存储多达100个Person s。
1

我觉得这句话应该是:

Person people[]; 
people = new Person[100]; 

.OR。

Person people[] = new Person[100]; 

因为您的人员变量是Person类型,所以您应该这样声明。

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 
1

实际申报必须声明名称的变量的,并其类型。

Person[] people; 

(变量被命名为“人”,其类型为“Person对象的数组”。请确保您有Person某处定义!)

阵列创建(未声明)实际上创建了一个给定大小的数组:

people = new Person[100]; 

我想你可能已经被联合表达的重复性揭去:

Person[] people = new Person[100]; 

...你指定类型两次。

1
Person [] people; 
people = new Person[100]; 

您的代码几乎是正确的(您只是忘了提供数组类型,如上所示),但一定要定义一个名为Person的类。你可以添加一个新的类到你的项目中,并保留为空(这足以编译你的测试代码)。

public class Person { 

}