* 成員內部類的的使用格式:定義在外部類的里邊,所以必須通過外部類才能找到內部類
* 外部類名.內部類名 變量名 = new 外部類名().new 內部類名();
* 內部類:定義在其他類內部的類
*
* 分類:
* 成員內部類:定義其他類的成員(類中方法外)位置的類
* 局部內部類:定義其他類的方法中的類
*
* 成員內部類的定義格式:
* 修飾符 class 外部類名{
* 修飾符 class 內部類名{
* 成員變量;
* 成員方法;
* }
* }
* 成員內部類的的使用格式:定義在外部類的里邊,所以必須通過外部類才能找到內部類
* 外部類名.內部類名 變量名 = new 外部類名().new 內部類名();
*
* 我們定義內部類時,就是一個正常定義類的過程,同樣包含各種修飾符、繼承與實現關系等。
* 在內部類中可以直接訪問外部類的所有成員。
* 一個java文件中可以定義多個類,多個是並列關系
* 但是只能有一個類使用public修飾,被public修飾的類,必須和文件名相同
* 局部內部類:定義在外部類的方法中
*
* 注意:局部變量的修飾符只能是final
*
* 定義格式:
* 修飾符 class 外部類名{
* 修飾符 返回值類名 外部類方法名(參數){
* (final)class 局部內部類名{
* 成員變量;
* 成員方法;
* }
* //創建局部內部類的方法使用
* 局部內部類名 變量名 = new 局部內部類名();
* 變量名.成員變量
* 變量名.成員方法(參數);
* }
*
* }
*
* 使用格式:和局部變量一樣,作用域只在方法中有效;只能在方法中使用,出了方法不能使用
* 必須在定義完成局部內部類之后,立即創建對象使用
* 匿名內部類:沒有名字,定義在其他類方法中的類
* 作用:把定義子類,重寫父類的方法,創建子類對象,合成一步完成
* 把定義實現類,重寫接口的抽象方法,創建實現類對象,合成一步完成
* 結果:就是一個子類對象,子類對象沒有名字
*
* 格式:
* new 父類/接口(){
* 重寫父類/接口中的方法;
* };
*
* new Smoking(){
@Override
public void smoke() {
System.out.println("匿名內部類,重寫接口的方法!");
}
};
以上一堆代碼就是一個創建子類的過程,結果就是一個子類對象,相當於new Teacher()
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">