在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

回到顶部