我對以下內容缺乏瞭解:如果使用「簡寫」創建內部類的實例,即使我沒有創建它的顯式實例,訪問外部類也不是個好主意嗎?Java外部實例生命週期
例如,請考慮下面的代碼:
class OuterClass
{
int i;
OuterClass() { i = 2; }
class InnerClass
{
int get_parent_i() { return (OuterClass.this.i); }
}
}
下編譯並返回預期的結果(2):
OuterClass.InnerClass ic = new OuterClass().new InnerClass();
System.out.println(ic.get_parent_i());
我的困惑的事實,我沒有明確的莖創建一個OuterClass對象來實例化一個InnerClass對象,儘管似乎無論如何都存在。有人能告訴我發生了什麼,如果我因任何原因要麼訪問或忘記幻影實例?
非常感謝!
靜態變量與內部類的工作方式無關,也與公共/默認可見性無關。 – Charlie
心靈先生:靜態是一種「幾乎」單身模式。因爲它與每個類都有關係,不管是任何包中的內部類還是外部類。 此外,我試圖解釋內容的行爲。顯示內部內容並不總是必須影響外部內容。除了它面臨一個靜態內容(變量,塊,功能)。 –