在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(); // 创建静态内部类的对象
}
}