程式設計思想 內部類

2021-07-01 18:57:32 字數 1717 閱讀 6178

1.內部類如何做到自動擁有對其外圍類所有成員的訪問權?

當乙個外圍類建立乙個內部類物件時,此內部物件必定會秘密地捕獲乙個指向那個外圍類物件的引用。然後,當你訪問此外圍類的成員時,就是用那個引用來選擇外圍類的成員的。所以,你會發現:內部類的物件只能在其外部類物件相關的情況下被建立(內部類為非static時)。

//迭代器的實現

public

inte***ce

selector

public

class

sequence

public

void

add(object x)

}private

class

sequenceselector

implements

selector

public object current()

public

void

next()

}}

2.使用.this與.new

在擁有外部類物件之前是不可能建立內部類物件的,因為內部類物件會暗暗地鏈結到建立它的外部類物件上。但是如果建立的是靜態內部類,它就不需要對外部類物件的引用。

public

class outer

}public inner inner()

}public

class dotnew

public

static

void

main(string args)

}

3.內部類與向上轉型

當將內部類向上轉型為其基類,尤其是轉型為乙個介面的時候,內部類就有了用武之地。

public

inte***ce

destination

public

inte***ce

contents

class parce

}public

class

pdestination

implements

destination

public string readlable()

public destination destiantion(string s)..}

}public

class

test

}

:內部類pcontents是private,所以除了parce,沒有人能夠訪問他。pdestination 是protected,所以只有parce以及其子類,還有parce同包中的類可以訪問它。

private 內部類給類的設計者提供一種途徑,通過這種方式可以完全阻止任何依賴於型別的編碼。

4.匿名內部類

public

class

parclea

}public contents contents(int i)

}public

class

paracleb}}

}

注:*在parclea不要求變數i一定是fianl。因為i被傳遞給匿名類的基類的構造器,它並不會再匿名類內部被直接使用。*

內部類(程式設計思想)

內部類 可以將乙個類的定義放在另乙個類的定義內部,這就是內部類。內部類是一種非常有用的特性,因為它允許你把一些邏輯相關的類組織在一起,並控制位於內部的類的可視性。最初,內部類看起來像一種 隱藏機制 將類置於其他類的內部。但是內部類遠不止如此,它了解外圍類,並能與之通訊 而且你用內部類寫出的 更加優雅...

Java程式設計思想 10內部類

內部類 定義在另外乙個類裡面的類 外部類 包含內部類的類 1 內部類可以直接訪問外部類的所有元素。因持有對外部類的引用 外部類類名.this 2 外部類訪問內部類,必須先建立內部類的物件 public class outer public static void main string args 前...

java程式設計思想筆記 內部類部分二

package com.wang.test public class test2 public static void main string args 以上是普通方式。如果內部類test3是乙個靜態類,則其與外圍類其實沒有任何關係,也不能訪問到外圍類的內部成員變數a。但是,如果是乙個靜態內部類,可...