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

在Java中,可以在另一个类中定义一个类,此类称为嵌套类。对于内部类,我们可以使用访问修饰符,例如private,public,protected或default;对于外部类, 可以使用default或public访问修饰符。

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

  • 静态嵌套类

  • 非静态嵌套类

静态嵌套类

  • 我们可以将内部类定义为静态类,因此这种类型的类称为静态嵌套类。

  • 嵌套类与定义的静态关键字,所以这种类型的嵌套类的不共享与实例任何关系 外类

  • 一个静态嵌套CLAS小号可以能够访问静态成员我们班的。

示例

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