Java内部类和静态嵌套类Java中的内部类和静态嵌套类之间的主要区别是什么?设计/实施是否在选择其中一个方面发挥作用?
4 回答

慕尼黑的夜晚无繁华
TA贡献1864条经验 获得超6个赞
我认为上述答案都没有向您解释嵌套类和静态嵌套类在应用程序设计方面的真正区别:
概观
嵌套类可以是非静态的,也可以是静态的,并且在每种情况下都是在另一个类中定义的类。嵌套类应该只存在于封闭类中,如果嵌套类对其他类(不仅是封闭的)有用,则应该声明为顶级类。
区别
非静态嵌套类:与包含类的封闭实例隐式关联,这意味着可以调用封闭实例的方法和访问变量。非静态嵌套类的一个常见用途是定义Adapter类。
静态嵌套类:无法访问封闭的类实例并在其上调用方法,因此在嵌套类不需要访问封闭类的实例时应该使用它。静态嵌套类的一个常见用途是实现外部对象的组件。
结论
因此,从设计的角度来看,两者之间的主要区别是:非静态嵌套类可以访问容器类的实例,而静态则不能。
添加回答
举报
0/150
提交
取消