内部类:就是定义在另外一个类中的类
分类:成员内部类、静态内部类、匿名内部类
1、成员内部类:相当于所在类的一个函数,可以被public、default、private修饰,
在其内部不能定义静态资源,常量除外,可以访问所在外部类的所有资源。
1-1、成员内部类的对象:
先实例化所在外部类的对象,然后通过外部类的对象来调用内部类的构造方法。
2、静态内部类:是在定义类的时候前面加static关键字,可以被public、default、private修饰
1-1、内部可以有静态资源
1-2、静态内部类内部方法访问内部资源值,遵循和外部类一样的原则(静态方法只能访问静态资源)
1-3、静态内部类内部方法访问外部类资源时,只能访问静态资源
3、匿名内部类:没有名字的类,匿名类无法重用,主要是使用他的对象,实际上是得到一个对象的同时而创建的一个匿名类,匿名类的使用我们着重关注对象。
InterfaceName object = new interfaceName () {
//是必须实现的行为
};
或者
SuperAbstractClassName object = new SuperAbstractClassName () {
//是必须实现的行为
};
排序时、比较器;
事件处理中监听器
匿名类是没有名称的类,所以没办法引用它们。必须在创建时,作为new语句的一部分来声明它们。这就要采用另一种形式的new语句,如下所示:
new interfacename(or superclass) { //类体 }
这种形式的new语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口,并同时创建该匿名类的一个新实例。
4、匿名内部类在GUI中的应用:
awt组件:重组件,其中的控件是用C或C++语言开发的,速度慢,效率低。
swing组件:轻组件,其中的控件都是用java语言开发的,速度快,效率高。
由于历史的原因,有些事件还编排在awt包中。
4-1、创建一个自定义的窗体程序:
JFrame类,窗体的父类
public class MyFrame extends JFrame {
//属性:自定义窗体所具有的特征,比如有哪行控件,摆放位置以及背景色
public class MyFrame {
}
//行为:
}
4-2、让指定控件可以接受我们的触发,并作出反应
事件:是窗体程序的一种触发机制。例如:鼠标单击,鼠标双击,按键按下弹起,鼠标拖拽等等,是程序中某种事情的发生。
事件源(控件):由谁引起了某种事件。
事件处理程序:当某种事情发生时,如何应对。
监听器:专门负责某种事件监听的对象,进而可以有针对处理。每种事件都有对应的接口(就是发生某种事件时,都有哪些处理行为)
自定义一个类型,然后实现相应的事件接口,那么该类对象就有资格作为该事件监听器,运用事件处理程序完成事件处理。
绑定:为事件源(控件)指定事件处理监听器。
实现事件监听处理:
1、先确定事件源
被触发者(控件)
2、创建监听器类(实现了指定事件接口的类)
public class XXXHandler implements InterfaceName {
方法的实现;
}
InterfaceName handler = new InterfaceName {
方法的实现;
};
3、事件源和监听器(new 监听器类())绑定。
绑定语法:
事件源对象.addXXXInterfaceName(new XXXHandler());
事件源对象.addMouseListener(new 监听器类());
5、基本数据类型:
int short long float double byte boolean char
包装类:对于每种基本数据类型,都有对应的引用型的类型,既包括对应基本数据又有扩展的属性和行为。
int short long float double byte boolean char
Integer Short Long Float Double Byte Boolean Char
5-1、装箱:基本类型-->引用型
自动装箱:由系统编译器完成
5-2、拆箱:引用型-->基本类型
自动拆箱:由系统编译器完成
5-3、包装类对象创建语法:
1)XXXName XXXobj = new XXXName(基本数据类型的值或字符串);
2)XXXName XXXobj = 基本数据类型的值;//自动装箱
5-4、从包装类对象中取出数据的方式:
1)显示的:包装类对象.XXXValue();
2)隐式的:直接使用包装类对象进行运算;//自动拆箱
6、枚举类:其中主要包括常量
意义:确定值的范围,常量的命名都是字符串(明确意义)
语法:
访问修饰符 enum 类名 {
常量;
属性;
行为;
}
//ordinal() 返回值是常量的索引值,索引值从0开始