欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-14 12:04:26
...

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

为什么要使用内部类

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

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

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

  • 定义

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

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

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

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