为什么能在非静态外部类中直接声明静态成员,但在非静态内部类中却不能直接声明静态成员?

问:为什么可以在非静态外部类中直接声明静态成员属性或方法,但在非静态内部类中却不能直接声明静态成员属性或方法?

答:所谓静态成员属性或方法,即表示不用实例化(创建对象)即可直接访问的成员属性或方法,java语言规定类(这里单指【外部类】)的静态成员属性或方法可以直接被访问,所以非静态外部类可以直接声明静态成员。但是不能在非静态内部类中直接声明静态成员,因为非静态内部类就相当于外部类的一个非静态成员方法,而非静态成员方法需要先实例化(创建对象)才可访问,所以如果你在一个非静态成员方法中定义一个静态变量是不可以的,所以说,这和不能在非静态内部类中直接声明静态成员(属性或方法)是一个道理。

(以上是小弟总结的疑问和答案,不知道理解的对不对,如果不对或理解不够充分和全面,希望大家给予指正,多谢了。)

CNSDHH
浏览 1031回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java