內部類總結

2021-08-27 20:45:54 字數 1875 閱讀 7914

外部類.

this

.成員變數

外部類.

this

.成員方法

public

class

circle

class

draw

}}

外部類想訪問成員內部類的成員,要先建立乙個成員內部類的物件

class

circle

private draw getdrawinstance()

class

draw

}}

成員內部類是依附外部類而存在的,建立成員內部類的物件,前提是必須存在乙個外部類的物件

public

class

test

}class

outter

public inner getinnerinstance()

class

inner

}}

內部類可以擁有private訪問許可權、protected訪問許可權、public訪問許可權及包訪問許可權。比如上面的例子,如果成員內部類inner用private修飾,則只能在外部類的內部訪問,如果用public修飾,則任何地方都能訪問;如果用protected修飾,則只能在同乙個包下或者繼承外部類的情況下訪問;如果是預設訪問許可權,則只能在同乙個包下訪問。這一點和外部類有一點不一樣,外部類只能被public和包訪問兩種許可權修飾。我個人是這麼理解的,由於成員內部類看起來像是外部類的乙個成員,所以可以像類的成員一樣擁有多種許可權修飾

區域性內部類是頂乙個方法或者乙個作用域裡面的類

與成員內部類的區別:區域性內部類的訪問僅限於方法內或者該作用域內。

class

people

}class

manpublic people getwoman()

return

newwoman()

;}}

區域性內部類就像方法裡面的一句不變數一樣,是不能有public protected private 以及static修飾符的

public

abstract

class

bird

public

void

setname

(string name)

public

abstract

intfly()

;}----

----

----

----

public

class

test

public

static

void

main

(string[

] args)

@override

public string getname()

});}

}

靜態內部類也是定義在另乙個類裡面的類,只不過在類前面加了乙個關鍵字static。靜態內部類是不需要依賴於外部類的,這點和類的靜態成員屬性有點類似,並且它不能使用外部類的非static成員變數或者方法。

public

class

test

}class

outter

static

class

inner

}}

class

outter

static

class

inner

}}

**參考資料:**

內部類總結

1內部類的巢狀可以理解成類的鏈關係,在構造乙個內部類 非static 的例項的時候,會將直接外層類的例項 作為引數傳進建構函式,而外層類的例項也是用其外層類的例項構造,所以是一種鏈狀關係,內部的類可以使用所有 外層的類的例項,而外層的類不能使用內層的類,應用a.this 最外層類例項 a.b.c.t...

內部類總結

內部類不是很好理解,但說白了其實也就是乙個類中還包含著另外乙個類 如同乙個人是由大腦 肢體 器官等身體結果組成,而內部類相當於其中的某個器官之一,例如心臟 它也有自己的屬性和行為 血液 跳動 顯然,此處不能單方面用屬性或者方法表示乙個心臟,而需要乙個類 而心臟又在人體當中,正如同是內部類在外部內當中...

內部類總結

內部類不是很好理解,但說白了其實也就是乙個類中還包含著另外乙個類 如同乙個人是由大腦 肢體 器官等身體結果組成,而內部類相當於其中的某個器官之一,例如心臟 它也有自己的屬性和行為 血液 跳動 顯然,此處不能單方面用屬性或者方法表示乙個心臟,而需要乙個類 而心臟又在人體當中,正如同是內部類在外部內當中...