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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 追逐 高级黑马   /  2014-3-15 21:56  /  674 人查看  /  1 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
当内部类在成员位置上,就可以被成员修饰符所修饰。
        比如:private:将内部类定义在外部类中进行封装。
        static:内部类就具备static的特性。
        当内部类被static修饰后,只能直接访问外部类中的static成员。
                出现了访问局限。
        在外部其他类中,如何直接访问static内部类的非静态成员呢?
        new 外部类名(Outer).内部类()(Inner()).函数名();
       
        在外部其他类中,如何直接访问static内部类的静态成员呢?
        Outer.inner.function();    外部类名.内部类名.方法名();
*/
class Outer1 {

        private static int x = 2; //因为内部类静态了,而且有调用到了此变量。所以此变量也得静态
        static class Inner1 { //静态内部类
                public void show() {
                        System.out.println(x);
                }
        }
       
        static class Inner2 { //把类和函数都静态化
                private static int x = 5;
                public static void show() {
                        System.out.println(x);
                }
        }
       
}

class OuterDemo1 {
        public static void main(String[] args) {
                new Outer1.Inner1().show(); //因为内部类是静态的。所以可以直接new 外部类名.内部类名
                Outer1.Inner2.show(); //因为内部类和内部类的函数都是静态的。所以可以直接类名调用
        }
}

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马