java基礎之認識內部類 未修訂

2021-08-10 01:51:25 字數 1942 閱讀 9673

成員內部類中不能存在任何static的變數和方法;

成員內部類是依附於外圍類的,所以只有先建立了外圍類才能夠建立內部類

public class outerclass 

public class innerclass

}/*推薦使用get***()來獲取成員內部類,尤其是該內部類的建構函式無引數時 */

public innerclass getinnerclass()

public static void main(string args)

}--------------------

chenssy...

outerclass...

有這樣一種內部類,它是巢狀在方法和作用於內的,對於這個類的使用主要是應用與解決比較複雜的問題,想建立乙個類來輔助我們的解決方案,到那時又不希望這個類是公共可用的,所以就產生了區域性內部類,區域性內部類和成員內部類一樣被編譯,只是它的作用域發生了改變,它只能在該方法和屬性中被使用,出了該方法和屬性就會失效。

定義在方法裡:

public class parcel5 

public string readlabel()

}return new pdestionation(str);

}public static void main(string args)

}

定義在作用域內:
public class parcel6 

string getslip()

}trackingslip ts = new trackingslip("chenssy");

string string = ts.getslip();}}

public void track()

public static void main(string args)

}

button2.addactionlistener(  

new actionlistener()

});

再如:

public class outerclass 

}; /* 注意:分號不能省 */

}public static void main(string args)

}inte***ce innerclass

----------------

output:

是不是都不知道那個是匿名內部類了,為啥叫匿名內部類,因為他都沒有名字。。。

再看看特點:

關鍵字static中提到static可以修飾成員變數、方法、**塊,其他它還可以修飾內部類,使用static修飾的內部類我們稱之為靜態內部類

靜態內部類與非靜態內部類之間存在乙個最大的區別:

我們知道非靜態內部類在編譯完成之後會隱含地儲存著乙個引用,該引用是指向建立它的外圍內,但是靜態內部類卻沒有

特點:

public class outerclass 

}/**

* 非靜態內部類

*/class innerclass2

}/**

* @desc 外圍類方法

* @author chenssy

* @data 2013-10-25

* @return void

*/public void display()

public static void main(string args)

}----------------

output:

chenssy_static

outclass name :chenssy

chenssy_inner

outerclass name:chenssy

Java內部類之靜態內部類

靜態內部類 巢狀內部類 內部類定義時加上static關鍵字。可以使用public protected default private修飾符。只可以訪問外部類的靜態成員和靜態方法,包括了私有的靜態成員和方法。生成靜態內部類物件的方式為 outerclass.innerclass innerobj ne...

java基礎 內部類

一 內部類 將乙個類定義在另乙個類的裡面,對裡面那個類就稱為內部類 內建類,巢狀類 非static內部類可以直接訪問外部類中的成員,包括私有成員。原因 因為內部類中持有了乙個外部類的引用,引用的格式為 外部類名.this 非靜態內部類不能定義static成員 1 內部類定義在外部類的成員位置上 方法...

java基礎《內部類》

一 內部類的訪問規則 1.內部類可以直接訪問外部類中的成員,包括私有 之所以可以直接訪問外部類中的成員,是因為內部類中持有了乙個外部類的引用 格式 外部類名.this 2.外部類要訪問內部類,必須建立內部類物件 訪問格式 1.當內部類定義在外部類的成員位置上,而且非私有,可以在外部其他類中,可以直接...