@jc19861226
为什么静态方法不可以直接new 一个 非静态内部类 的 对象,还得加上外部类.作前缀
答案:1 悬赏:40
解决时间 2021-03-01 08:41
- 提问者网友:年齡太小℡蘿莉
- 2021-02-28 15:44
最佳答案
- 二级知识专家网友:我们只是兮以城空
- 2021-02-28 16:56
非静态方法和属性是可以访问和实例化静态和非静态内部类的
静态方法和属性是不可以访问和实例化非静态内部类的,但是可以访问和实例化静态内部类
如果内部类是静态(static 修饰),那么内部类中是不能访问外部类非静态属性和方法的,反之则能访问
静态内部类:是可以被独立实例化的,而不依赖外部类实例化,且内部类中可以有静态属性,但是只能访问外部类静态属性
非静态内部类:要实例化必须先实例化外部类,他是依赖于外部类实例的,所以他才能够有资格访问外部类的非静态属性,即使是private属性,但是非静态内部类中是不能有静态属性的
严格来说,内部类就是外部类的一个属性,既然是自己的属性当然就能被其他属性和方法访问,因此应该遵循属性访问的一般规则,即非静态属性或方法可以访问静态和非静态属性,但是静态属性或方法只能访问静态属性,在这里你应该能发现点什么,内部类和其他属性一样,有静态和非静态之分,且静态属性可以不依赖类实例化而使用,而非静态则需要依赖类实例化而初始化。
所以内部类是比较特殊属性但是也符合类的一般属性情况 ,希望能帮助你!
静态方法和属性是不可以访问和实例化非静态内部类的,但是可以访问和实例化静态内部类
如果内部类是静态(static 修饰),那么内部类中是不能访问外部类非静态属性和方法的,反之则能访问
静态内部类:是可以被独立实例化的,而不依赖外部类实例化,且内部类中可以有静态属性,但是只能访问外部类静态属性
非静态内部类:要实例化必须先实例化外部类,他是依赖于外部类实例的,所以他才能够有资格访问外部类的非静态属性,即使是private属性,但是非静态内部类中是不能有静态属性的
严格来说,内部类就是外部类的一个属性,既然是自己的属性当然就能被其他属性和方法访问,因此应该遵循属性访问的一般规则,即非静态属性或方法可以访问静态和非静态属性,但是静态属性或方法只能访问静态属性,在这里你应该能发现点什么,内部类和其他属性一样,有静态和非静态之分,且静态属性可以不依赖类实例化而使用,而非静态则需要依赖类实例化而初始化。
所以内部类是比较特殊属性但是也符合类的一般属性情况 ,希望能帮助你!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯