黑马程序员技术交流社区

标题: 关于匿名内部类的问题 [打印本页]

作者: 赵茹艳    时间: 2012-5-13 12:31
标题: 关于匿名内部类的问题
匿名内部类的构造函数怎么写?这个老师上课没说明白。
当匿名内部类中的成员变量名和外部类的成员变量名相同时,想要在内部类中调用外部类的成员变量,要怎么调?这个成员变量不是静态的啊
求指教
作者: 崔陈喜    时间: 2012-5-13 13:05
A:内部类可以直接访问外部类中的成员,包括私有成员。
                   B:而外部类要访问内部类中的成员必须要建立内部类的对象。
        (3)内部的存放位置
                A:成员位置
                        **可以被private,static成员修饰符修饰。
                        **被static修饰的内部类只能访问外部类中的静态成员。
                B:局部位置
                        **也可以直接访问外部类中的成员。
                        **同时可以访问所在局部中的局部变量,但必须是被final修饰的。
               
                Outer$Inner.class:$表示成员内部类。
                Outer$1Inner.class:$1表示它是一个局部内部类。
                        ***为什么会出现编号呢?因为局部内部类可以不写名字,所以带编号。

        (4)匿名内部类:没有名字的内部类。它是内部类的简化写法。
                A:前提:内部类可以继承或实现一个外部类或者接口。
                B:格式为:new 外部类名或者接口名(){覆盖类或者接口中的代码,(也可以自定义内容。)}
                C:简单理解:就是建立一个带内容的外部类或者接口的子类匿名对象。
作者: 倪杭乘    时间: 2012-5-13 13:25
内部类的构造函数跟外部类一样
内部内要访问外部类成员,如果不同名那么外部类的变量加final
如果相同则要使用 外部类.this.变量名
作者: 赵茹艳    时间: 2012-5-13 13:33
是的,加个this就可以了,多谢,还有个问题是我使用的是匿名内部类,这个时候重写构造函数的时候就不能像外部类那样写了,因为没有名字啊!直接写对大括号行吗?




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