class Outer { // 定義外部類
private static String info = "hello world";
// 定義外部類的私有屬性
static class Inner {
// 使用static定義內部類為外部類
public void print() {
// 定義內部類的方法
System.out.println(info);
// 直接訪問外部類的私有屬性
}
};
public void fun() {
// 定義外部類的方法
new Inner().print();
// 通過內部類的實例化對象調用方法
}
};
public static void main(String args[]) {
new Outer.Inner().print();
// 調用外部類的fun()方法
}
};
2.不使用statc聲明一個內部類 ,使外部調用
class Outer { // 定義外部類
private String info = "hello world";
// 定義外部類的私有屬性
class Inner { // 定義內部類
public void print() {
// 定義內部類的方法
System.out.println(info);
// 直接訪問外部類的私有屬性
}
};
public void fun() {
// 定義外部類的方法
new Inner().print();
// 通過內部類的實例化對象調用方法
}
};
public class InnerClassDemo04 {
public static void main(String args[]) {
Outer out = new Outer();
// 外部類實例化對象
Outer.Inner in = out.new Inner();
// 實例化內部類對象
in.print(); // 調用內部類的方法
}
};
3.在方法中定義內部類 ,使外部調用
class Outer { // 定義外部類
private String info = "hello world";
// 定義外部類的私有屬性
public void fun(final int temp) {
// 定義外部類的方法
class Inner {
// 在方法中定義的內部類
public void print() {
// 定義內部類的方法
System.out.println("類中的屬性:" + info);
// 直接訪問外部類的私有屬性
System.out.println("方法中的參數:" + temp);
}
}
;
new Inner().print();
// 通過內部類的實例化對象調用方法
}
};
public class InnerClassDemo05 {
public static void main(String args[]) {
new Outer().fun(30); // 調用外部類的方法
}
};