簡體   English   中英

混疊問題(對類內私有對象的公共引用)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM