物件導向8 內部類

2021-08-03 21:43:20 字數 2873 閱讀 4798

內部類:在乙個類中定義另乙個類,內部類

舉例:在a類中定義了乙個b類,b就是a類的內部類,a類叫做外部類

內部類的分類:

內部類的訪問特點:

//外部類

class a

}public

void

method()

}//測試類

1.可以直接訪問外部類的成員,包括私有

2.不能直接訪問內部類的成員,需要在內部類物件,通過內部類物件使用方法

3.成員內部類的訪問:不能直接建立物件

非靜態內部類訪問格式:外部類名.內部類名 物件名 = 外部物件.內部類物件;

靜態內部類訪問格式:外部類名.內部類名 物件名 = new 外部類名.內部類名();

//外部類

class a1

}}//測試類

4.成員內部類的常見修飾符:a.pirvate:保護資料的安全性

b.static:為了讓資料訪問更方便

注意:被靜態修飾的成員內部類只能訪問外部類的靜態成員

被private修飾的成員內部類:

class body

}public

void

method()

}//測試類

被static修飾的成員內部類:

class number

//靜態方法

可以直接訪問外部類的成員

可以建立內部類物件,通過物件呼叫內部類方法,來使用區域性內部類功能

區域性內部類訪問區域性變數的注意事項:

必須被final修飾

原因:

因為區域性變數會隨著方法的呼叫完畢而消失,這個時候,區域性物件並沒有立馬從堆記憶體中消失,還要使用那個變數.為了讓資料還能繼續被使用,就用fianl修飾,這樣,在堆記憶體裡面儲存的其實是乙個常量值.

1.前提條件:有乙個類或者介面存在(這個類可以是具體類也可以是抽象類)

2.格式:

new 類名/介面名() ;

3.匿名內部類的本質:需要繼承該類或者實現該介面的子類物件

內部類與外部類沒有繼承關係

介面不能直接例項化:

a.建立子實現型別:通過介面多型的形式去訪問

b.使用匿名內部類去訪問

//介面

inte***ce inter

//外部類

class outer

public

void

show2()

}.show();

//呼叫乙個方法:show2()方法

new inter()

public

void

show()

}.show2();

//一次性呼叫

4.匿名內部類的一些問題:

a.補齊**:在控制台分別輸出:30,20,10

class outer1

}}public

class demo6

}

補齊:

class outer1   

}}public

class demo6

}

b.補齊**:要求在控制台輸出:helloworld

inte***ce

inter

class

outer

class

outerdemo

}

補齊:

inte***ce inter2 

class outer2 };}

}class demo7

}

物件導向 內部類

在學內部類前,我自己先問了自己2個問題!1 什麼是內部類呢?簡單說 就是在乙個類中在建立乙個類。2 而為什麼又要搞這個內部類呢?我想是為了在於現實中的一些建模問題吧,讓事物更加形象。比如要建立 人體 這個類,有很多功能吧,比如 吃飯 看書 而這些功能又需要 嘴巴 眼睛 那麼我們就不得不建立 嘴巴 眼...

物件導向 內部類

asp.net android ios開發 net培訓 期待與您交流!7.1內部類 內部類 將乙個類定義在另乙個類裡面,裡面那個類就稱為內部類.格式 class outclass 注意 內部類可以定義在外部類的成員位置,也可以是在外部類的區域性位置.如 class outclass 注意 內部類可以...

物件導向 內部類

定義 將乙個類定義在另乙個類的裡面,裡面那個類就是內部類,又稱為巢狀類或者內建類。內部類生成的位元組碼檔名格式為 outerclass innerclass.class 內部類可以分成成員內部類 區域性內部類以及匿名內部類。在乙個類中使用內部類,可以在內部類中直接訪問其所在類的私有成員變數,儘管這些...