黑马程序员技术交流社区
标题:
关于匿名内部类的问题
[打印本页]
作者:
赵茹艳
时间:
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