静态内部类和非静态内部类的区别

    如果一个类中定义了静态成员变量和静态方法,那么静态方法可以访问静态成员变量,而无法访问非静态成员变量,并且静态成员变量和静态方法是随着类的加载而加载、非静态成员变量和方法的声明周期是由对象的声明周期控制的。
    静态内部类和非静态内部类同静态方法和非静态方法类似。

为什么要使用内部类

    内部类的定义必然是与这个类是有联系的,并且往往只有该类调用此内部类,因此可以将内部类看成该类的扩展。

静态内部类和非静态内部类的区别

    主要区别有三点:定义、访问和声明

  • 定义

    • 静态内部类中可以定义静态成员变量和静态方法;非静态内部类不能定义静态属性和方法
  • 访问

    • 静态内部类只能访问外部类的静态成员变量和静态方法;非静态内部类可以访问外部类的所有成员和方法
  • 声明

    • 声明静态内部类时,不依赖于外部类对象;声明非静态内部类时,依赖于外部类对象
# 静态内部类
OutClass.InnerClass innerClass =  new OutClass.InnerClass();

# 非静态内部类
OutClass.InnerClass innerClass = new OutClass().new InnerClass();

猜你喜欢

转载自blog.csdn.net/qq_30038111/article/details/79985808