看一下这两个简单的程序:
程序1:
public class GenArray extends Applet {
byte[] myArray ={ (byte) 'M', (byte) 'o', (byte) 'd', (byte) 'e',
(byte) '1' };
}
程式2:
public class GenArray extends Applet {
byte[] myArray = new byte[5];
{
myArray[0] =(byte) 'M';
myArray[1] =(byte) 'o';
myArray[2] =(byte) 'd';
myArray[3] =(byte) 'e';
myArray[4] =(byte) '1';
}
}
我想知道MyArray
在Program-1MyArray
的最后一行和Program-2的最后一行之间是否有区别?(任何区别!)
在您的第二个程序中,{ ... }
are不是数组定界符,它们是块定界符;在这种情况下,它们用于提供所谓的初始化块,该初始化块在实例化类的新实例时执行。
创建初始化数组的“正确”方法是:
new byte[] { 1, 2, 3 };
在初始化引用,使用现有引用或将数组传递给方法时,都可以始终使用它:
byte[] myArray = new byte[] { 1, 2, 3 }; // OK
myArray = new byte[] { 4, 5, 6 }; // OK
anObject.someMethod(new byte[] { 7, 8, 9}); // OK
但是,第一种变体非常普遍,因此Java允许您在特定情况下new byte[]
省略该部分:
byte[] myArray = { 1, 2, 3 }; // OK
myArray = { 4, 5, 6 }; // Does not compile
anObject.someMethod({ 7, 8, 9}); // Does not compile
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句