[英]Aliasing issues (public reference to a private object inside a class)
我正在閱讀《用Java思考》。 關於訪問(私有,公共等)的章節。 這是這本書的引文:
...只是因為對一個對象的引用在類中是私有的,並不意味着其他某個對象不能對同一對象進行公共引用。
然后,我們被重定向到該書的在線補充資料,以了解有關別名問題的信息。
在官方站點上有該書的解決方案指南。 但這對我來說是昂貴的。
您能澄清一下別名問題的含義是什么,以便我可以在Google上搜索更多示例。
這是一個例子
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
實例訪問它,也可以通過其他實例訪問它。 它不一定安全。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.