第三节 静态内部类

第三节 静态内部类

顾名思义,就是用static修饰的内部类,但并不是说明内部类是静态的,而是说明内部类不依托于外部类实例

定义语法
class < 外部类名 > {
     
    // 外部类字段方法
    
    static class < 内部类名 > {
     
        // 内部类字段方法
    }
    
    // 外部类字段方法
}

静态内部类是外部类的一个静态属性成员,因此静态内部类只能访问外部类的静态属性和方法

创建静态内部类实例

< 外部类名 >.< 内部类名 > 引用变量 = new < 外部类名 >.< 内部类名 >;

public class CreateStaticInnerClass {
     
	public static void main(String[] args) {
     
		new Outter.Inner();  // 在外部类之外创建静态内部类实例
        new Outter().createStaticInnerInstance();  // 在外部类中创建静态内部类实例
	}
}

class Outter{
     
    // 定义静态内部类
	static class Inner{
     
		public Inner() {
     
			System.out.println("Inner 实例创建成功!");
		}
	}
    
    public void createStaticInnerInstance(){
     
        // 创建方式同非静态内部类的创建
		Inner i = new Inner();
    }
}

/*
 * 运行结果
 * Inner 实例创建成功!
 * Inner 实例创建成功!
 */

写在最后

静态内部类也被称作为静态嵌套类顶级嵌套类,与非静态内部类有所不同,非静态内部类与外部类是共享关系,是外部类对象的组成部分。

而静态内部类与外部类对象没有这样的关系,而是脱离的外部类对象且存在于另一类中的普通类,所以static修饰不是说类是静态的,而是说明其创建对象是不依托于外部类对象的,这点也可以从静态内部类的实例创建语法看出。

你可能感兴趣的:(Java,内部类,java,javase,javaee,jdk)