仅用于个人的概念知识补充,目的是为了遗忘后能够快速回忆重点,右侧图标也许能帮助你快速找到一些概念。
1. 匿名内部类
参考:JAVA匿名内部类(Anonymous Classes),作者:无恨之都
概念:
匿名内部类可以使你的代码更加简洁,你可以在定义一个类的同时对其进行实例化。它与局部类很相似,不同的是它没有类名,如果某个局部类你只需要用一次,那么你就可以使用匿名内部类。
匿名类表达式包含以下部分:
1. 操作符:new; 2. 一个要实现的接口或要继承的类,案例一中的匿名类实现了HellowWorld接口,案例二中的匿名内部类继承了Animal父类; 3. 一对括号,如果是匿名子类,与实例化普通类的语法类似,如果有构造参数,要带上构造参数;如果是实现一个接口,只需要一对空括号即可; 4. 一段被"{}"括起来类声明主体; 5. 末尾的";"号(因为匿名类的声明是一个表达式,是语句的一部分,因此要以分号结尾)。
访问权限:
匿名内部类与局部类对作用域内的变量拥有相同的的访问权限。
(1)、匿名内部类可以访问外部内的所有成员; (2)、匿名内部类不能访问外部类未加final修饰的变量(注意:JDK1.8即使没有用final修饰也可以访问); (3)、属性屏蔽,与内嵌类相同,匿名内部类定义的类型(如变量)会屏蔽其作用域范围内的其他同名类型(变量): (4)、匿名内部类中不能定义静态属性、方法; (5)、匿名内部类可以有常量属性(final修饰的属性); (6)、匿名内部内中可以定义属性,如:private int x = 1; (7)、匿名内部内中可以可以有额外的方法(父接口、类中没有的方法); (8)、匿名内部内中可以定义内部类; (9)、匿名内部内中可以对其他类进行实例化。
2. 监听器
参考:java监听器实现与原理,作者:Againn
概念:
监听器就是监听某个域对象的的状态变化的组件。
监听器的相关概念:
(1)事件:用户对组件的一个操作,或者说程序执行某个方法,称之为一个事件,如机器人程序执行工作。
(2)事件源:发生事件的组件就是事件源,也就是被监听的对象,如机器人可以工作,可以跳舞,那么就可以把机器人看做是一个事件源。
(3)事件监听器(处理器):监听并负责处理事件的方法,如监听机器人工作情况,在机器人工作前后做出相应的动作,或者获取机器人的状态信息。
执行顺序:
1、给事件源注册监听器。 2、组件接受外部作用,也就是事件被触发。 3、组件产生一个相应的事件对象,并把此对象传递给与之关联的事件处理器。 4、事件处理器启动,并执行相关的代码来处理该事件。
监听器模式:
事件源注册监听器之后,当事件源触发事件,监听器就可以回调事件对象的方法;更形象地说,监听者模式是基于:注册-回调的事件/消息通知处理模式,就是被监控者将消息通知给所有监控者。
1、注册监听器:事件源.setListener。
2、回调:事件源实现onListener。