有人可以澄清以下代码的意义吗?
class A
{
int i = 10;
public void setI(int b)
{
i = b;
}
public int getI()
{
return i;
}
}
class Test
{
public static void main(String args[]) throws Throwable
{
final A ob = new A();
ob.setI(10);
System.out.println(ob.getI());
}
}
对象 A 被声明为 Final,但我可以更改该对象的实例变量的值并检索更新后的值。那么将一个对象声明为final有什么意义呢?
我知道将原始数据类型声明为最终数据类型,这使得该变量恒定。
ob 将无法引用任何其他对象:最终关键字 http://en.wikipedia.org/wiki/Final_%28Java%29.
它不能被重新分配。但您可以更改其内部结构(如果最初是可变的,则它是可变的)。
所以这有效:
final A ob = new A();
ob.setI(6)
但这不是:
final A ob = new A();
ob = new A();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)