Java 中定义了哪些不同类型的嵌套类?

javaobject oriented programmingprogramming更新于 2025/7/1 12:28:17

在 Java 中,可以在一个类中定义另一个类,这样的类称为嵌套类。我们可以将访问修饰符如private、public、protected 或 default用于内部类,将default 或 public访问修饰符用于外部类。

Java 中定义了两种类型的嵌套类。

  • 静态嵌套类
  • 非静态嵌套类

静态嵌套类

  • 我们可以将内部类定义为静态的,因此这种类型的类称为静态嵌套类。
  • 嵌套类使用static 关键字定义,因此这种类型的嵌套类与外部类的实例没有任何关系类。
  • 静态嵌套类可以访问我们类的静态成员。

示例

class Car {
   static class Wheel {
      public void rotate() {
         System.out.println("The wheel is rotating");
      }
   }
}
public class Test {
   public static void main(String args[]) {
      Car.Wheel wheel = new Car.Wheel();
      wheel.rotate();
   }
}

输出

The wheel is rotating

非静态嵌套类

  • 在 Java 中,非静态嵌套类被间接称为内部类。
  • 内部类与外部类的对象相关联。因此,内部类被视为与外部类的其他变量和方法一样。
  • 内部类与外部类对象或实例相关联,因此我们不能在内部类中声明静态变量。

示例

public class OuterClassTest {
   private int a = 10;
   public void innerClassInstance() {
      InnerClassTest inner = new InnerClassTest();
      inner.outerObject();
   }
   public static void main(String args[]) {
      OuterClassTest outer = new OuterClassTest();
      outer.innerClassInstance();
   }
   class InnerClassTest {
      public void outerObject() {
         System.out.println("Outer Value of a is: " + a);
      }
   }
}

输出

Outer Value of a is: 10

相关文章


有用资源