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
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP