1
我正在閱讀Thinking in Java。關於訪問的章節(私人,公共等)。這是一本書的報價單:別名問題(對一個類中的私有對象的公共引用)
...只是因爲對某個對象的引用是一個類裏面 私營並不意味着其他一些對象不能有一個公共參考 同一個對象。
然後我們重定向到本書的在線補充,瞭解別名問題。
在官方網站上有本書的解決方案指南。但這對我來說很貴。
你能否澄清一下別名問題的含義,以便我可以更多地使用谷歌示例。
我正在閱讀Thinking in Java。關於訪問的章節(私人,公共等)。這是一本書的報價單:別名問題(對一個類中的私有對象的公共引用)
...只是因爲對某個對象的引用是一個類裏面 私營並不意味着其他一些對象不能有一個公共參考 同一個對象。
然後我們重定向到本書的在線補充,瞭解別名問題。
在官方網站上有本書的解決方案指南。但這對我來說很貴。
你能否澄清一下別名問題的含義,以便我可以更多地使用谷歌示例。
下面是一個例子
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
實例訪問它,您也可以通過其他實體訪問它。這不一定安全。
我正在寫同樣的例子。 +1。 –
這被稱爲別名?我會說這是違反封裝原則。 – Michael
@ user3475946可能有一些不太健康的封裝正在進行,但別名只是指有許多變量引用相同的對象。 –