(我正在攻读
Java助理考试OCJP 7)
一个问题要求选择非法初始化的例子.
其中一个答案是: –
int [] k= new int[2]{5,10};
解释说,在创建匿名数组时,指定数组的大小是非法的.
据我所知,这不是一个匿名数组,因为它被命名为“k”.
调用如下方法: –
operateOnArray(new int[]{5,10});
本来是一个匿名数组的例子,因为它没有被声明.
我可以看到“2”使其成为非法 – 但这并不是匿名的,
有人可以告诉我吗?
最佳答案 嗯……从我所教过的内容(以及我读过的内容)来看,匿名数组的定义是:“没有任何名称的数组,它只是一个用于创建和使用它的数组”.由于它没有任何名称,因此您无法重用该数组.
我为OCJP做准备时最好的参考资料是:
anonymous int array : new int[] { 1, 2, 3, 4};
anonymous String array : new String[] {"one", "two", "three"};
anonymous char array : new char[] {'a', 'b', 'c');
您可以注意到(并且您已经知道)这些类型的数组同时具有创建和初始化(当您使用new()关键字在同一行中初始化它们而不分配任何变量时,您会以后无法重复使用).
因此,根据您所提到的,当您将数组分配给变量时,即使您创建它并在同一行初始化,也会将其分配给变量,以便以后可以重用它,它不是匿名的,它可以被引用,所以我想知道为什么在“匿名数组”的例子中你会看到类似的东西:
int [] k= new int[2]{5,10};
匿名意味着“名称不知道”,因为数组被分配给名为“k”的变量,所以在您指定的行中不是这种情况.但是,这个显示了匿名数组对象创建的属性,它由引用变量“k”指向,所以如果我们只写“new int [] {1,2,3};”那么这就是如何创建匿名数组对象…
当我准备OCJP 7时,我从这个页面阅读了很多文章,我建议你以后深入学习Java 🙂
参考:http://javarevisited.blogspot.com/2012/01/anonymous-array-example-java-create.html
你可以在那里找到很好的例子和文章:)