静态内部类和非静态内部类的区别的示例
时间: 2023-09-13 15:05:57 浏览: 99
Java中的静态内部类详解及代码示例
5星 · 资源好评率100%
以下是一个静态内部类和非静态内部类的区别示例:
```java
public class OuterClass {
private static int staticField = 1;
private int nonStaticField = 2;
// 静态内部类
public static class StaticInnerClass {
public void print() {
System.out.println("StaticInnerClass: " + staticField);
}
}
// 非静态内部类
public class NonStaticInnerClass {
public void print() {
System.out.println("NonStaticInnerClass: " + staticField + " " + nonStaticField);
}
}
}
```
在这个例子中,我们定义了一个外部类`OuterClass`,包含一个静态成员变量`staticField`和一个非静态成员变量`nonStaticField`。同时,我们定义了一个静态内部类`StaticInnerClass`和一个非静态内部类`NonStaticInnerClass`。
我们来看一下如何使用这两种内部类:
```java
public class Main {
public static void main(String[] args) {
// 静态内部类的使用
OuterClass.StaticInnerClass staticInner = new OuterClass.StaticInnerClass();
staticInner.print(); // 输出:StaticInnerClass: 1
// 非静态内部类的使用
OuterClass outer = new OuterClass();
OuterClass.NonStaticInnerClass nonStaticInner = outer.new NonStaticInnerClass();
nonStaticInner.print(); // 输出:NonStaticInnerClass: 1 2
}
}
```
我们可以看到,在使用静态内部类时,我们可以直接使用外部类的类名来创建内部类的实例,并访问外部类的静态成员变量。而在使用非静态内部类时,我们必须先实例化外部类对象,再通过外部类对象来创建内部类的实例,并可以访问外部类的所有成员变量。
阅读全文