当一个类中定义了一个静态成员内部类后,这个内部类相当于外部类的一个静态成员。我们知道,访问一个类的静态成员有两种方式:1)直接通过类名来访问;2)创建这个类的一个对象,然后通过这个对象来访问。
对于第一种方式,没有什么问题。但是第二种方式,当我创建一个外部类对象,然后试图通过这个对象创建一个内部类对象的时候,编译器提示错误:限定的新静态类。
我的问题是:对于一个静态的成员内部类,为什么我不能创建一个外部类对象,然后通过这个对象创建一个内部类对象?“限定的新静态类”是什么含义?
一个关于Java静态内部类的问题
答案:3 悬赏:30 手机版
解决时间 2021-03-09 11:28
- 提问者网友:遮云壑
- 2021-03-09 00:17
最佳答案
- 五星知识达人网友:走死在岁月里
- 2021-03-09 01:01
静态内部类不需要外部类实例化,直接用外部类调用静态内部类实例化就行了。虽然第二种方法可以调用,但实际上还是调用的类的静态成员,并非实例化新的对象就会有新的静态成员。另外我只能说内部类不完全等同于外部类的一个静态成员,实例化对象的时候并没有把类的信息传递给对象。
全部回答
- 1楼网友:撞了怀
- 2021-03-09 02:17
public class Outer {
public Outer() {
// TODO Auto-generated constructor stub
}
public void outPrint() {
Inner inner = new Inner();
inner.innerPrint();
}
private static class Inner {
public void innerPrint() {
System.out.println("Inner Class");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Outer outer = new Outer();
outer.outPrint();
}
- 2楼网友:痴妹与他
- 2021-03-09 01:58
外部类访问内部类的成员需要创建内部类的对象,之后可以访问内部类的任何成员,包括private成员,需要注意的是成员内部类不可以有静态成员。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯