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中的四種引用型別Java型別
- Java內部類詳解--匿名內部類Java
- java內部類之成員內部類Java
- Java內部類Java
- Java 內部類Java
- 10-Java內部類——成員內部類、區域性內部類、匿名內部類Java
- Java 的各種內部類、Lambda表示式Java
- java之內部類(InnerClass)----非靜態內部類、靜態內部類、區域性內部類、匿名內部類Java
- Java內部類詳解-- 成員內部類Java
- java內部類,為什麼需要內部類?Java
- Java內部類和匿名內部類的用法Java
- java內部類之成員內部類之區域性內部類Java
- 詳聊Java的四種引用型別Java型別
- 匿名內部類泛型泛型
- JAVA物件導向基礎--N種內部類Java物件
- 10、Java——內部類Java
- java內部類案例Java
- 搞懂 JAVA 內部類Java
- Java--內部類Java
- java的內部類Java
- Java內部類詳解--區域性內部類Java
- java內部類之成員內部類例項Java
- scala_繼承、型別判斷、抽象類、匿名內部類繼承型別抽象
- Java中的巢狀類、內部類、靜態內部類Java巢狀
- Java類與匿名內部類Java
- Java基礎之介面與抽象類及多型、內部類Java抽象多型
- Java基礎內部類4-內部類進階Java
- Java基礎10---包、內部類、匿名內部類Java
- Java基礎--Java 內部類Java
- 靜態內部類和非靜態內部類區別
- Day1---Java 基本資料型別 - 四類八種 --九五小龐Java資料型別
- 淺談java內部類Java
- Java-InnerClass內部類Java
- Java內部類詳解Java