我写了这样的一堂课-
class foo
{
int t,b;
foo(int a,int b)
{
this.a = a; this.b = b
}
foo(){}
}
现在我想创建一个对象数组。这两行之间有什么区别
foo[] ab = new foo[100];
foo ab[100] = new foo[100];
我写了这样的一堂课-
class foo
{
int t,b;
foo(int a,int b)
{
this.a = a; this.b = b
}
foo(){}
}
现在我想创建一个对象数组。这两行之间有什么区别
foo[] ab = new foo[100];
foo ab[100] = new foo[100];
区别在于第二行甚至不会编译,因为这在Java中是无效的语法。因此,除了重复100
信息还有“感觉”之外,该部分仅属于语句的右侧。
在左侧,您有类型。类型是“ foo数组”。该类型的实际实例中的元素数量为“仅运行时”。它不反映在类型中。
,foo [] ab =新的foo [100];
上面的代码行将创建一个引用变量,该引用变量包含对包含100个foo类型的声明的对象的引用(类名应在Initial Caps中)
foo ab [100] =新的foo [100]; 当您声明具有大小的数组变量时,此行代码将引发编译错误。
您可以通过创建一个新对象并为每个索引赋予变量来替换此行。 ab [0] =新的foo(1,2); 这样,您可以创建对象并分配给数组索引。