黑马程序员技术交流社区

标题: 哪位大神帮忙看看关于内部类的代码有没有问题?? [打印本页]

作者: 君北羽    时间: 2015-4-8 21:58
标题: 哪位大神帮忙看看关于内部类的代码有没有问题??
如题:
       学完内部类之后自己琢磨的一个关于内部类与外部类方法与成员变量的相互调用,哪位大神帮忙看看是否合情合理


class Outer {
        private String out = "外部私有成员变量";
        public void show (){
                System.out.println("这是外部类方法");
        }
        class Inner {
                public void funcition(){
                        System.out.println("out="+out);
                        Outer o = new Outer();
                        o.show();
                }
                public void innerShow(){
                        System.out.println("这是内部类方法");
                }
        }
        public void funcition2(){
        Inner in = new Inner();
        in.innerShow();
        }
}
class Test4 {
        public static void main(String[] args)
        {
                Outer ot = new Outer();
                ot.funcition2();
                System.out.println("=====================");
                Outer.Inner oi = new Outer().new Inner();
                oi.funcition();
        }
}


作者: 关山明月    时间: 2015-4-8 23:04
没问题。内部类中的function()  方法可以这样:
  1. public void funcition(){
  2.                         System.out.println("out="+out);                       
  3.                         show();
  4.                 }
复制代码


不需要再创建外部类的对象,因为内部类持有外部类的对象,相当于 Outer.this.show()
作者: lclxjzz    时间: 2015-4-9 15:24
我也在找······
作者: shw16888    时间: 2015-4-9 15:50
不错,学习了,哈哈
作者: 君北羽    时间: 2015-4-9 22:17
内部类调用外部类方法的时候,内部类不要创建对象???




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