在Java中,可以通過在一個類的內部定義另一個類來創建內部類。內部類可以訪問外部類的成員變量和方法,包括私有成員。
定義內部類的語法如下:
class OuterClass {
// 外部類的成員變量和方法
class InnerClass {
// 內部類的成員變量和方法
}
}
在上面的代碼中,OuterClass
是外部類,InnerClass
是內部類。
內部類可以分為四種類型:成員內部類、局部內部類、匿名內部類和靜態內部類。
class OuterClass {
// 外部類的成員變量和方法
class InnerClass {
// 內部類的成員變量和方法
}
public static void main(String[] args) {
OuterClass outer = new OuterClass(); // 創建外部類的對象
InnerClass inner = outer.new InnerClass(); // 創建內部類的對象
}
}
final
修飾的局部變量。class OuterClass {
// 外部類的成員變量和方法
public void method() {
// 方法內的局部變量
final int x = 10;
class LocalInnerClass {
// 局部內部類的成員變量和方法
public void printX() {
System.out.println(x); // 可以訪問外部類的成員變量
}
}
LocalInnerClass inner = new LocalInnerClass(); // 創建局部內部類的對象
inner.printX(); // 調用局部內部類的方法
}
}
interface MyInterface {
void doSomething();
}
class OuterClass {
// 外部類的成員變量和方法
public void method() {
MyInterface inner = new MyInterface() {
// 匿名內部類的實現
public void doSomething() {
// 實現接口方法的具體邏輯
}
};
inner.doSomething(); // 調用接口方法
}
}
class OuterClass {
// 外部類的靜態成員變量和方法
static class StaticInnerClass {
// 靜態內部類的成員變量和方法
}
public static void main(String[] args) {
StaticInnerClass inner = new StaticInnerClass(); // 創建靜態內部類的對象
}
}