黑马程序员技术交流社区

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

作者: 追逐    时间: 2014-3-15 21:56
标题: 静态内部类的应用
/*
当内部类在成员位置上,就可以被成员修饰符所修饰。
        比如: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(); //因为内部类和内部类的函数都是静态的。所以可以直接类名调用
        }
}
作者: 许庭洲    时间: 2014-3-16 06:20
值得学习ing!




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