Java——內部類

目錄
成員內部類 局部內部類
在一個類中定義一個類。前者稱為外部類,后者即為內部類。
內部類的訪問特點:
內部類可以直接訪問外部類的成員,包括私有;
外部類要訪問內部類的成員,必須要創(chuàng)建對象。
內部類定義格式:
public class 類名{修飾符 class 類名{}}public class Outer {
private int n = 20;
public class Inner{
public void show (){
System.out.println(n);
}
}
public void method() {
//創(chuàng)建對象訪問內部類成員
Inner i = new Inner();
i.show();
}}
成員內部類
public class Outer {
private int n = 20;// public class Inner{//// public void show (){// System.out.println(n);// }// }
private class Inner {
public void show() {
System.out.println(n);
}
}
public void method() {
//創(chuàng)建對象訪問內部類成員
Inner i = new Inner();
i.show();
}}
public class InnerDemo {
public static void main(String[] args) {
//創(chuàng)建內部類對象,并調用方法
//格式:外部類名.內部類名 對象名 = 外部類對象.內部類對象// Outer.Inner oi = new Outer().new Inner();// oi.show();
Outer o = new Outer();
o.method();
}}
局部內部類
public class Outer {
private int n = 20;
public void method() {
class Inner {
public void show() {
System.out.println(n);
}
}
Inner i = new Inner();
i.show();
}}
/*
測試類
*/public class OuterDemo {
public static void main(String[] args) {
Outer o = new Outer();
o.method();
}}
public class Outer {
public void method() {
//本質為對象
Inter i = new Inter() {
@Override
public void show() {
System.out.println("匿名內部類");
}
};
i.show();
}}
public interface Inter {
void show();}
/*
測試類
*/public class OuterDemo {
public static void main(String[] args) {
Outer o = new Outer();
o.method();
}}
評論
圖片
表情





