創建Java內部類的編譯錯誤處理

創建Java內部類的編譯錯誤處理

創建Java內部類的編譯錯誤處理

創建Java內部類的編譯錯誤處理

在學習編程的過程中,我覺得不止要獲得課本的知識,更多的是通過學習技術知識提高解決問題的能力,這樣我們才能走在最前方,更多Java學習,請搜索瘋狂Java;

在創建非靜態內部類時,經常會遇到“No enclosing instance of type * is accessible. Must qualify the allocation with an enclosing instance of type *(e.g. x.new A() where x is an instance of *).”這樣的報錯,其實原因只有一點,內部類是依賴于外部類存在的,所以在使用非靜態內部類時,要求先實例化外部類才可以使用內部類。關于非靜態內部類,我們可以把它理解成外部類的成員變量,我們在使用一個類的非靜態成員變量時要求先對類進行實例化,然后通過對象來調用這個類的非靜態成員變量。這里非靜態內部類同外部類的關系,就如同非靜態成員變量同類的關系一樣。所以在使用非靜態內部類時,要求先實例化外部類。 下面我給出例子來分析一下:

package com.csc.innerclasstest;

/**

*

* @author csc

*

*/

//外部類

public class OuterClass {

/**

* @param args

*/

public static void main(String[] args) {

InnerClass innerClass = new InnerClass();

innerClass.say();

System.out.println("I am in OuterClass!");

}

//定義一個內部類

private class InnerClass{

private void say() {

System.out.println("I am in InnerClass!");

}

}

}

上面的代碼的第16行將會報出“No enclosing instance of type OuterClass is accessible. Must qualify the allocation with an enclosing instance of type OuterClass

(e.g. x.new A() where x is an instance of OuterClass).”這樣的編譯錯誤。錯誤的原因如上面紅色字體所述。

創建Java內部類的編譯錯誤處理相關文檔

最新文檔

返回頂部
彩票数字0至9规律技巧