一、什么是内部类
类的五大成员:属性、方法、构造方法、代码块、内部类
内部类:在一个类里面再定义一个类。举例:再A类的内部定义B类,B类就称为内部类。
内部类表示的事物是外部类大的一部分,内部类单独出现没有任何意义。
public class Car{ //外部类
String carName;
int carAge;
int carColor;
class Engine{ //内部类
String engineName;
int engineAge;
}
}
内部类的访问特点
- 内部类可以直接访问外部类的成员,包括私有
- 外部类要访问内部类的成员,必须创建对象。
二、内部类的分类
成员内部类、静态内部类、局部内部类、匿名内部类(重要)
1、实例内部类
①在实例内部类中,不能定义一个静态的成员变量!非要定义就只能定义一个静态常量
②如何实例化实例内部类的对象
OuterClass.InnerClass innerClass = outerClass. new InnerClass();
//外部类名.内部类名 变量 = 外部类对象的引用.new 内部类();
③实例内部类中,如果包含了和外部类同名的成员变量,那么如何在实例内部类当中访问
System.out.println(OuterClass.this.data1);
System.out.println(this.data1);
实例内部类中,包含两个this,一个是外部类的this,一个是自己的this
2、静态内部类
①
1、匿名内部类
匿名内部类本质上就是隐藏了名字的内部类。可以写在成员位置,也可以写在局部位置。格式如下
new 类名或者接口名(){
重写方法;
};
使用场景:当方法的参数是接口或者类时,以接口为例,可以传递这个接口的实现类对象,如果实现类只要使用一次,就可以用匿名内部类简化代码。
三、事件
事件是可以被组件识别的操作。当你对组件干了某件事情之后,就会执行相应的代码
事件包括
- 事件源:按钮,图片,窗体....
- 事件:某些操作,例如鼠标单击,鼠标划入....
- 绑定监听:当事件源上发生了某个事件,则执行某段代码
键盘监听 | KeyListener |
鼠标监听 | MouseListener |
动作监听 | ActionListener |
四、正则表达式
正则表达式可以校验字符串是否满足一定的规则,并用来校验数据格式的合法性。
作用:①校验字符串是否满足规则;②在一段文本中查找满足要求的内容