在Java中将对象声明为final
有人可以澄清以下代码的重要性吗?
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的意义何在?我知道将原始数据类型声明为final,这使该变量保持不变。
回答:
ob将无法引用任何其他对象:final关键字。
不能重新分配。但是您可以更改其内部(如果它是原始的,则是可变的)。所以这有效:
final A ob = new A(); ob.setI(6)
但这不是:
final A ob = new A(); ob = new A();
以上是 在Java中将对象声明为final 的全部内容, 来源链接: utcz.com/qa/421499.html