3.6 Java內部類四種型別
在Java中,內部類有四種不同的型別。這篇文章用四個簡單的例子來闡明它們。
1.靜態巢狀類
class Outer {
static class Inner {
void go() {
System.out.println("Inner class reference is: " + this);
}
}
}
public class Test {
public static void main(String[] args) {
Outer.Inner n = new Outer.Inner();
n.go();
}
}
輸出:Inner class reference is: Outer$Inner@19e7ce87
2.成員內部類
成員類是特定於例項的。 它可以訪問所有的方法,欄位和其他的外部類的引用。
public class Outer {
private int x = 100;
public void makeInner(){
Inner in = new Inner();
in.seeOuter();
}
class Inner{
public void seeOuter(){
System.out.println("Outer x is " + x);
System.out.println("Inner class reference is " + this);
System.out.println("Outer class reference is " + Outer.this);
}
}
public static void main(String [] args){
Outer o = new Outer();
Inner i = o.new Inner();
i.seeOuter();
}
}
輸出:
Outer x is 100
Inner class reference is Outer$Inner@4dfd9726
Outer class reference is Outer@43ce67ca
3.方法內部類
public class Outer {
private String x = "outer";
public void doStuff() {
class MyInner {
public void seeOuter() {
System.out.println("x is " + x);
}
}
MyInner i = new MyInner();
i.seeOuter();
}
public static void main(String[] args) {
Outer o = new Outer();
o.doStuff();
}
}
輸出:
x is outer
public class Outer {
private static String x = "static outer";
public static void doStuff() {
class MyInner {
public void seeOuter() {
System.out.println("x is " + x);
}
}
MyInner i = new MyInner();
i.seeOuter();
}
public static void main(String[] args) {
Outer.doStuff();
}
}
4.匿名內部類
當你在一個GUI程式中,為一個widget新增一個動作監聽器的時候常被用到。
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
comp.setText("Button has been clicked");
}
});
相關文章
- 類與介面(二)java的四種內部類詳解Java
- java內部類,區域性內部類,靜態內部類,匿名內部類Java
- Java內部類詳解--匿名內部類Java
- 泛型,內部類泛型
- Java 的各種內部類、Lambda表示式Java
- Java 內部類Java
- Java內部類Java
- 10-Java內部類——成員內部類、區域性內部類、匿名內部類Java
- 詳聊Java的四種引用型別Java型別
- java內部類,為什麼需要內部類?Java
- Java內部類詳解-- 成員內部類Java
- JAVA物件導向基礎--N種內部類Java物件
- Day1---Java 基本資料型別 - 四類八種 --九五小龐Java資料型別
- 10、Java——內部類Java
- scala_繼承、型別判斷、抽象類、匿名內部類繼承型別抽象
- Java內部類詳解--區域性內部類Java
- Java類與匿名內部類Java
- Java基礎內部類4-內部類進階Java
- Java-InnerClass內部類Java
- java中的內部類Java
- Java 內部類詳解Java
- 淺談java內部類Java
- Java內部類詳解Java
- Prometheus 四種metric型別Prometheus型別
- Java中的匿名內部類及內部類的二三事Java
- final關鍵字、內部類、四種許可權修飾符
- Java 的抽象類, 介面以及內部類Java抽象
- Java 內部類使用詳解Java
- Java 內部類與閉包Java
- 定類,定序,定距,定比四種資料型別資料型別
- Java 建立類的四種方式Java
- 內部類與靜態內部類
- Java基礎-內部類詳解Java
- Java中內部類的騷操作Java
- Java內部類你真的會嗎?Java
- 淺談Java中的內部類Java
- java匿名內部類:“ 儂好,世界”Java
- 360度客戶影片的內容和四種資料型別資料型別
- java培訓教程:什麼是匿名內部類?怎樣建立匿名內部類?Java