黑马程序员技术交流社区

标题: 静态内部类 [打印本页]

作者: EarlyHeart    时间: 2014-7-10 02:18
标题: 静态内部类
本帖最后由 EarlyHeart 于 2014-7-11 12:05 编辑

什么是静态内部类?跟普通内部类有什么区别?
class A{
    static class B{
    }
}

作者: 咖啡苏克    时间: 2014-7-10 09:59
静态类作为类的静态成员存在于某个类中,需在类的定义中加入关键字static。
class Outer
{
        Private static int x = 3;     
       
        static class Inner
        {
                void method()
                {
                System.out.println("method"+x);  
                }
        }
}
class InnerClassDemo5
{
        public static void main(String[] args)
        {
                Outer.Inner in = new Outer.Inner();  // Outer.Inner()为直接通过外部类类名调用的内部类
                in.method();
        }
}
在类Outer中定义了静态类Inner后,可将静态类Inner看成类Outer的static成员。当内部类被static修饰后,只能直接访问外部类中的static成员,出现了访问局限。因为内部类被静态化,Static成员可以在不创建外部类Outer对象的情况下,直接new 出内部类Inner的对象。
注意:当内部类中定义了静态成员,该内部类必须是static的; 当外部类中的静态方法访问内部类时,内部类也必须是static的。

作者: alexsoon    时间: 2014-7-10 10:36
静态内部类的成员都需要static修饰吧?
作者: EarlyHeart    时间: 2014-7-11 12:02
M路 发表于 2014-7-10 02:31
当内部类在成员位置上,就可以被成员修饰符所修饰。比如,private:将内部类在外部类中进行封装。 static: ...

回答的很详细,谢谢!
作者: mirror    时间: 2014-7-11 12:28
M路 发表于 2014-7-10 02:31
当内部类在成员位置上,就可以被成员修饰符所修饰。比如,private:将内部类在外部类中进行封装。 static: ...

学习了  自己都忘记这部分 了
作者: 崔MQ    时间: 2014-7-11 12:34
静态内部类,外部可以引用的,和普通的类差不多




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2