i.show();直接進行調用嗎?
主要是這一句Inner i = hello.new Inner(); 如果把new當作一個內存分配的標識的話,是不是可以認為內部類其實并沒有在內存中重新獲取內存,而是使用的外部類的內存 并且是調用內部類的時候i.show();,顯然并沒有通過外部類來進行調用這是為什么呢?
主要是這一句Inner i = hello.new Inner(); 如果把new當作一個內存分配的標識的話,是不是可以認為內部類其實并沒有在內存中重新獲取內存,而是使用的外部類的內存 并且是調用內部類的時候i.show();,顯然并沒有通過外部類來進行調用這是為什么呢?
2018-02-12
舉報
2018-02-12
成員內部類需要先創建外部類,才能創建它自己的,這是因為每一個內部類都保存了一個對外部類的一個引用。這很好理解,因為你要實例化這個內部類,肯定是通過外部類的一個實例,而內部類保留的這個引用就是這個外部類實例??梢灶惐纫幌路椒?,你怎么使用一個類里面定義的xxx()方法?肯定是先new一個對象hello,然后再hello.xxx() 這樣使用方法。你在定義一個內部類的時候,默認會生成此內部類的構造方法,如何使用此構造方法呢?跟使用普通方法一樣。
2018-02-12
因為你這個show方法本來就是定義在內部類的,沒必要通過外部類的對象來調用啊。而且外部類也不能直接訪問和使用內部類的對象和方法,必須通過內部類的對象訪問。。。