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


在 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

更新于: 2019年7月30日

865 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告