內部類,修飾符許可權,引數傳遞,返回值型別

2021-10-06 14:06:16 字數 2986 閱讀 9972

內部類

1.內部類定義:

(1)將乙個類a定義到類b的內部,那麼類a就叫做內部類,類b就叫做外部類

(2)對內部類進行劃分還分為區域性內部類和成員內部類,和區域性變數和成員變數的定義其實是差不多的

成員內部類:定義在類中方法外的類

區域性內部類:定義在外部類中的成員方法中,注意是成員方法,沒有靜態方法

2.內部類特點:

(1)內部類可以直接訪問外部類的成員,包括私有成員,成員方法

(2)內部類也可以直接new外部類,其實雖然內部類在外部類的內部,都在本外部類裡面,但是他倆還是不同的兩個類,只是乙個類巢狀進外部類了.

public

class

test

}class

apublic

void

luelue()

private

void

gaga()

classb}

private

classf}

public

static

classg}

public

void

hehe()

}}class

cclass

d

靜態內部類

public

class

test

}class

outer

}// 只能在區域性內部類所在的方法內部去建立這個內部類,然後在從外部類進行new外部類物件掉外部類這個方法呼叫,如:

inner inner =

newinner()

; inner.

hehe()

;//這在從主方法裡new外部類物件

}public

void

outshow()

}

在類中定義乙個介面

public

class

test};

//也是採用匿名內部類的方式訪問內部界面子物件,前提是介面不是私有的

system.out.

println

(myinte***ce.b)

;// b.inner b=new b.inner();//如果介面時私有的話就不能直接呼叫內部介面的子物件了,需要間接法

b a=

newb()

; a.

ccc();

//採用間接法去呼叫內部私有的介面的子物件}}

//可不可以在乙個類裡面定義乙個介面,可以:

class

bprivate

inte***ce

inner

public

void

outshow()

}.aa(

);system.out.

println

(new

myinte***ce()

}.b);}

public

void

ccc()}

.aaaa()

;}}

public

class

test}.

aa();

//到這裡就是乙個匿名內部類,這你可以不用理解其中的原理,記住匿名內部類就是乙個子物件,是抽象類或者介面的子物件

// .aa呼叫的是內部類中的方法,時刻記住,這就是個子類物件,記住記住!

newmyclass()

};//這裡就是另乙個匿名內部類,是myclass的子類物件,呼叫方法時是呼叫的子類本身的方法,即子類點方法

// 匿名內部類方法就是 new類名或介面名(){};,大括號內部重寫其方法}}

abstract

class

myclass

2.引數傳遞

public

class

demo

}class

outer

}}

3.返回值型別

public

class

test

public

static father sss

(father f)

}inte***ce

father

class

sonimplements

father

}

public

class

demo

//返回值型別如果是抽象類或者介面的話,返回這個型別的子型別即可

public

static myclass sss

(int num)

}abstract

class

myclass

class

myson

extends

myclass

}

4.修飾符許可權

修飾符分為四個:public,protacted,預設,private,四個的等級依次降低

private是只能在本類裡面用,出了類就不行

private可以用在內部類的修飾上,static 也可以修飾內部類,且倆可以同時一起用

預設是只能在本包裡面用,出了包就不行

protacted是出了本包之外,也可以在外包使用,但是外包使用的話,外包的類必須與本包的類是繼承關係(外包類是子類),不是繼承關係也不能用

public 本包外包繼承非繼承都可以用

public protacted 預設 private 是乙個領域

abstrat final default 修飾方法的時候是乙個領域

內部類,匿名內部類,許可權修飾符

二.匿名內部類 三.許可權修飾符 public class a 格式 外部類物件.內部類物件 物件名 new 外部類物件.new 內部類物件 不使用匿名內部類呼叫抽象物件中的方法 建立子類,繼承父類 重寫方法 建立子類物件 呼叫重寫方法 使用匿名內部類 無需建立子類直接new父類即可 格式一 new...

許可權修飾符與內部類

一 包 1.包包就是對類進行分類管理 com.fruit.manage.add com.fruit.manage.update 2.包的命名規則 公司網域名稱的倒序 全部小寫 多個包之間用.分割 3.乙個類中的組成順序 package import class 二 許可權修飾符 public 本類 ...

許可權修飾符和內部類

final關鍵字代表最終 不可改變的。學習了繼承後,我們知道子類可以在父類的基礎上改寫父類內容,比如方法重寫。為了避免隨意改寫的情況發生,j a提供了 final 關鍵字,用於修飾不可改變內容 主要表現在使用final關鍵字後 修飾類 格式 public final class 類名稱含義 當前這個...