嵌套类的this + Java监听器类添加四个方法(自身、内部类、外部类、匿名内部类)
2013-01-22 21:39
381 查看
本来是在看多线程方面的知识,做demo时在实现监听器添加的时候想遵循《java核心技术》中的推荐写法: 监听器类最好是单独形成一个类(可以是外部类或者是内部类),不要使用直接在本类中扩展actionListener接口,然后再实现actionPerformed方法。
但是使用内部类,也就是嵌套类的时候,遇到一个实际问题: 内部类在实现actionPerformed方法时要使用外部类的对象,如果直接使用this,调用的是该内部类的对象;如果是先在内部类中实例化一个对象,然后再使用报错 --- 嵌套类的情况下,正确的做法应该是使用 外部类名.this 的方式实现内部类调用外部类的对象。
参考资料:
JAVA的类名.this ------- this指的是当前正在访问这段代码的对象,当在内部类中使用this指的就是内部类的对象,。为了访问外层类对象,就可以使用外层类名.this来访问,一般也只在这种情况下使用这种
后来查了下java监听器添加的四种方法写法区别,下面是两个比较好的博客。
JAVA监听器添加的四种方式(自身、外部类、内部类、匿名类)
Java事件处理机制- 事件监听器的四种实现方式
但是使用内部类,也就是嵌套类的时候,遇到一个实际问题: 内部类在实现actionPerformed方法时要使用外部类的对象,如果直接使用this,调用的是该内部类的对象;如果是先在内部类中实例化一个对象,然后再使用报错 --- 嵌套类的情况下,正确的做法应该是使用 外部类名.this 的方式实现内部类调用外部类的对象。
参考资料:
JAVA的类名.this ------- this指的是当前正在访问这段代码的对象,当在内部类中使用this指的就是内部类的对象,。为了访问外层类对象,就可以使用外层类名.this来访问,一般也只在这种情况下使用这种
后来查了下java监听器添加的四种方法写法区别,下面是两个比较好的博客。
JAVA监听器添加的四种方式(自身、外部类、内部类、匿名类)
Java事件处理机制- 事件监听器的四种实现方式
相关文章推荐
- Java匿名内部类可以访问外部类的成员;若访问所在方法的成员,那个成员必须具有final属性
- 匿名内部类实现多线程,内部类调用外部方法中定义的变量
- JAVA中的四个内部类-成员内部类,静态内部类,方法内部类,匿名内部类
- 匿名内部类访问外部类的实例方法的局部变量时,局部变量必须是final
- JAVA监听器添加的四种方式(自身、外部类、内部类、匿名类)
- 嵌套类,内部类,匿名内部类的定义和使用方法
- 牛客网Java刷题知识点之什么是内部类、为什么要使用内部类、内部类如何使用外部类的属性和方法、成员内部类、局部内部类、静态内部类、匿名内部类
- python中的嵌套类(内部类调用外部类中的方法函数)
- JAVA匿名内部类不能访问外部类方法中的局部变量,除非变量被声明为final类型
- JAVA监听器添加的四种方式(自身、外部类、内部类、匿名类)
- 匿名内部类访问外部类方法中的局部变量
- Java.内部类方法对外部类对象的引用x-this.x-Test.this.x
- 为什么匿名内部类调用的方法内局部变量必须为final
- java内部类,内部类的共性,成员内部类,方法内部类匿名内部类,静态嵌套类,不解
- 匿名内部类 使用外部的变量为什么要声明成final
- c/c++工程中外部头文件及库添加方法
- 匿名内部类使用外部定义对象时
- Android Studio监听事件匿名内部类的方法及注意事项
- 抽象类和接口的区别,内部类引用外部方法final参数,守护线程和用户线程
- Java 匿名内部类中的外部引用为什么必须是 final 的?