靜態方法中不能new內部類的實例對象。這是為什么了? 內部類的最重要的一個特點就是它可以直接訪問它外部類的成員變量。成員變量是對象身上的。對象創建完成了,才會為成員變量分配空間。能調用成員變量,意味着一定有了實例對象. main方法是靜態的,它執行的時候可以不用創建那個對象。這就 ...
原因如下: .內部類可以訪問外部類的成員變量 .對象創建完成后對象的成員變量才會被分配空間 .main的靜態方法執行時可以不存在外部類,不創建實體對象 .內部類能訪問成員變量意味着一定存在外部類實體對象 因為 和 矛盾,所以在靜態方法中不能new內部類的實體對象 解決辦法 :新建一個非靜態方法init ,在init 方法中new內部類的實體對象.然后在靜態方法main中新建一個外部類的實體對象去調 ...
2016-01-17 02:09 0 1829 推薦指數:
靜態方法中不能new內部類的實例對象。這是為什么了? 內部類的最重要的一個特點就是它可以直接訪問它外部類的成員變量。成員變量是對象身上的。對象創建完成了,才會為成員變量分配空間。能調用成員變量,意味着一定有了實例對象. main方法是靜態的,它執行的時候可以不用創建那個對象。這就 ...
static 關鍵字只能修飾成員變量不能修飾局部變量 靜態方法 當我們希望方法不必和對象綁定到 ...
View Code 使用.this,.new .this 表達的是在內部類對象域內 通過外部類.this 指向了一個在內部類指向外圍類對象引用的關系。只有這樣可以訪問外圍類對象的屬性與方法 .new表達的是與.this方向相反 當在外圍類作用域 ...
Java中的靜態內部類:在定義的內部類前加static修飾符,此時的內部類就是靜態內部類。通過一個例子來了解靜態內部類都有哪些特點。 總結:1、靜態內部類中可以寫哪些內容 1)匿名代碼塊 2)靜態代碼塊 3)靜態變量和非靜態變量 4)靜態方法和非 ...
外部類和內部類其實是2個類,先加載外部類在加載內部類 在Java中內部類主要分為成員內部類(非靜態內部類、靜態內部類)匿名內部類、局部內部類。成員內部類可以用public、private、protected、default任意進行修飾。 非靜態內部類(外部類 ...
Java中的內部類(成員內部類、靜態內部類、局部內部類、匿名內部類) 神話丿小王子的博客主頁 我們先看這樣一段話:人是由大腦、肢體、器官等身體結果組成。而組成我們人體的心臟它也有自己的屬性和行為(血液、跳動),顯然,此處不能單方面用屬性或者方法表示一個心臟了,而需要一個類,但是這個類 ...
看下圖. 第一個App.class,沒啥好解釋的 可以發現,如果類有名字,那么就是xxx$xx.class,對於沒有名字匿名內部類,用數字代替類名,因為數字在語言規范里是不正確的類名,用戶代碼里面的類名不可能就是一個數字. 第二個,對於方法體里面內部類,編譯后的類名,xxx ...
靜態內部類: 1、用static修飾的內部類,稱為靜態內部類,完全屬於外部類本身,不屬於外部類某一個對象 2、static關鍵字的作用是把修飾的成員變成類相關,而不是實例相關 3、靜態內部類可以包含靜態成員,也可以包含非靜態成員,但是在非靜態內部類中不可以聲明靜態 ...