为什么引用静态内部类不需要创建对象?
2个回答
2015-08-11
展开全部
因为静态类和方法只属于类本身,并不属于该类的对象,更不属于其他外部类的对象。
静态内部类,定义在类中,任何方法外,用static定义;静态内部类只能访问外部类的静态成员。
生成(new)一个静态内部类不需要外部类成员:这是静态内部类和成员内部类的区别。静态内部类的对象可以直接生成:Outer.Inner in=new Outer.Inner();而不需要通过生成外部类对象来生成。这样实际上使静态内部类成为了一个顶级类。可以定义私有静态内部类。
静态内部类,定义在类中,任何方法外,用static定义;静态内部类只能访问外部类的静态成员。
生成(new)一个静态内部类不需要外部类成员:这是静态内部类和成员内部类的区别。静态内部类的对象可以直接生成:Outer.Inner in=new Outer.Inner();而不需要通过生成外部类对象来生成。这样实际上使静态内部类成为了一个顶级类。可以定义私有静态内部类。
展开全部
“创建一个static内部类的对象,我们不需要一个外部类对象”是指:当你试图要new一个static的内部类时,不需要先将外部类实例化;而对非static的内部类进行操作时(比如new)时,是必须先将外部类实例化的。public class AAA{ public static void main(String[] args) { // Create static inner class objects. AAA.StaticInner in = new AAA.StaticInner(); in.f1(); // Create non-static inner class objects. AAA a = new AAA(); AAA.NonStaticInner non = a.getNonStaticInner(); non.f2(); } static class StaticInner { void f1() { System.out.println("Inner funcation f1()!"); } } class NonStaticInner { void f2() { System.out.println("Inner funcation f2()!"); } } NonStaticInner getNonStaticInner() { return new NonStaticInner(); }}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询