大家过年好,小弟有个小问题 没有好好看 Thinking in Java 吧?在 Java 里面所有都是对象,数组也是对象,除了 Primitive Type 以外。把数组声明为常量,即把一个对象声明为常量,是说这个对象变量不能在指向其它的对象。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 同理,把一个对象变量声明为常量,只是意味这这个对象常量,即对象的reference已经和这个对象所绑定。 public class FinalData {final int[] a = { 1, 2, 3, 4, 5, 6 }; public static void main(String[] args) { FinalData fd1 = new FinalData(); for(int i = 0; i < fd1.a.length; i++) System.out.println(fd1.a[i]); }} a是final的,因此a的例如是不能改变的。当fd1.a[i]++实际是在修改a的内容。 java中final的含义和C++ const的含义有所不同final的含义是引用a已经不能指向其他对象除了所定义的数组,但不是说数组的内容不能该变!!! 关于对象的赋值与比较 jawin 和JACOB 哪个好? 怎么把linux自带的jdk卸载掉 java的问题,帮解释一下. 如何取得JTabbedPane中卡片的title String 不是传引用的吗,可是为什么会这样呢? 请问如何将另外一个工程加到一个工程里来 这个Swing的定时器Timer为什么不行? 请教几个方法! 请问如何通过 jdbc api 设置 access DB 中的 连接帐号 密码 ? 关于怎么使用外来的库 愿来年我不做程序员!
{final int[] a = { 1, 2, 3, 4, 5, 6 };
public static void main(String[] args) {
FinalData fd1 = new FinalData();
for(int i = 0; i < fd1.a.length; i++)
System.out.println(fd1.a[i]);
}
}
当fd1.a[i]++实际是在修改a的内容。
final的含义是引用a已经不能指向其他对象
除了所定义的数组,但不是说数组的内容不能
该变!!!