静态嵌套类和内部类的区别
答案:2 悬赏:0
解决时间 2021-02-06 07:10
- 提问者网友:恋你成殇
- 2021-02-05 15:28
静态嵌套类和内部类的区别
最佳答案
- 二级知识专家网友:我叫很个性
- 2021-02-05 16:04
和普通的类一样,内部类也可以有静态的。不过和非静态内部类相比,区别就在于静态内部类没有了指向外部的引用。这实际上和C++中的嵌套类很相像了,Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用这一点上,当然从设计的角度以及以它一些细节来讲还有区别。
除此之外,在任何非静态内部类中,都不能有静态数据,静态方法或者又一个静态内部类(内部类的嵌套可以不止一层)。不过静态内部类中却可以拥有这一切。
除此之外,在任何非静态内部类中,都不能有静态数据,静态方法或者又一个静态内部类(内部类的嵌套可以不止一层)。不过静态内部类中却可以拥有这一切。
全部回答
- 1楼网友:冷态度
- 2021-02-05 16:31
内部类是在一个类的内部定义的类,内部类不能定义静态成员,内部类可以调用外部类的引用变量。内部类可以定义在外部类的外面,也可以定义在外部类的方法体中。定义在方法体中的内部类不能有访问类型修饰符,就像是方法中定义的局部变量一样,但可以使用final和抽象修饰符。内部类是其他类不可见的,所以其他类无法引用这种内部类,但是内部类可以通过创建实例对象传递给其他类访问,但必须遵循先定义后使用。内部类还可以访问方法体内的局部变量,但是该变量前必须是final修饰符,
在方法外部定义的内部类前面可以加上static关键字,从而成为静态嵌套类,它不在具有内部类的特性;静态嵌套类不依赖于外部类的实例对象,所以静态内部类能访问外部类的非静态成员变量;静态嵌套类中也可以直接引用外部类的成员变量,不需加上外部类的名字;在静态方法中定义的内部类也是静态嵌套类(类前面不能加静态关键字);
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯