gpt4 book ai didi

java - 别名问题(对类内私有(private)对象的公共(public)引用)

转载 作者:行者123 更新时间:2023-11-29 07:47:15 24 4
gpt4 key购买 nike

我正在阅读 Thinking in Java。关于访问(私有(private)、公共(public)等)的章节。这是书中的引文:

...just because a reference to an object is private inside a class doesn't mean that some other object can't have a public reference to the same object.

然后我们被重定向到本书的在线增刊以了解别名问题。

官方网站上有本书的解决指南。但这对我来说很贵。

您能否阐明别名问题的含义,以便我可以在谷歌上搜索更多示例。

最佳答案

举个例子

public class Foo {}
public class PrivateExample {
private Foo foo;
public PrivateExample (Foo foo) {
this.foo = foo;
}
}
public class PublicExample {
public Foo foo;
}
...
// in some method
Foo foo = new Foo();
PrivateExample privateExample = new PrivateExample(foo);
PublicExample publicExample = new PublicExample();
publicExample.foo = foo;

现在 PrivateExample 实例和 PublicExample 实例都引用了同一个 Foo 对象。请注意,即使方法也有对对象的引用。因此,即使您无法通过 PrivateExample 实例访问它,您也可以通过其他实例访问它。它不一定安全。

关于java - 别名问题(对类内私有(private)对象的公共(public)引用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24563063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com