黑马程序员技术交流社区

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

作者: 追逐    时间: 2014-3-15 20:41
标题: 非静态内部类的应用
/*
内部类的访问规则:
1,内部类可以直接访问外部类中的成员,包括私有。
        之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外       

部类的引用,  格式:外部类名。this。变量名;
2,外部类要访问内部类,必须建立内部类对象。
*/
class Outer {

        private int x = 3;
        class Inner { //定义一个内部类
                private int x = 4;
                void show() {
                        int x = 5;
                        System.out.println("x = " + x); //调用函数中的变量x
                        System.out.println("x = " + this.x); //调用内部类中的成员变量x.
                        System.out.println("x = " + Outer.this.x); //调用外部类中的成员变量
                }
        }
       
        public void show() { //定义一个函数。调用内部类中的函数
                Inner in = new Inner();
                in.show();
        }
       
}

class OuterDemo {
        public static void main(String[] args) {
                Outer ou = new Outer(); //建立外部类对象
                ou.show(); //通过外部类函数调用内部类函数
                Outer.Inner in = new Outer().new Inner(); //通过内部类名.外部类名建立内部类对象
                in.show(); //通过内部类对象调用内部类函数
        }
}




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