A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© EarlyHeart 中级黑马   /  2014-7-10 02:18  /  1256 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 EarlyHeart 于 2014-7-11 12:05 编辑

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

6 个回复

倒序浏览
静态类作为类的静态成员存在于某个类中,需在类的定义中加入关键字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的。
回复 使用道具 举报
静态内部类的成员都需要static修饰吧?
回复 使用道具 举报
M路 发表于 2014-7-10 02:31
当内部类在成员位置上,就可以被成员修饰符所修饰。比如,private:将内部类在外部类中进行封装。 static: ...

回答的很详细,谢谢!
回复 使用道具 举报
M路 发表于 2014-7-10 02:31
当内部类在成员位置上,就可以被成员修饰符所修饰。比如,private:将内部类在外部类中进行封装。 static: ...

学习了  自己都忘记这部分 了
回复 使用道具 举报
静态内部类,外部可以引用的,和普通的类差不多
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马