一、回顾
内部类:就是定义在另外一类中的类
分类:成员内部类,静态内部类,匿名内部类
1、成员内部类:相当于所在内的一个函数,可以被public、default、private修饰
在其内部不能定义静态资源,常量除外,可以访问所在外部类的所有资源。
1-1、成员内部类的对象:
先实例化所在外部类的对象,然后通过外部类对象来调用内部类的构造方法,
来实例化对象。
2、静态内部类:是在定义类的时候前面加static 关键字,可以被public、default、
private修饰。
1-1、内部可以有静态资源。
1-2、静态内部类内部方法访问内部资源时,遵循和外部类一样的原则(静态方法只
能访问静态资源)。
1-3、静态内部类内部方法访问外部类资源时,只能访问静态资源。
题目:自定义一个外部类,在其中分别定义成员内部类,静态内部类,分别感受访问修
饰符在内部类中的特征,静态资源的应用,以及内部类访问外部类资源的功能特
征(特别是有重名的属性),在测试类中分别创建成员内部类和静态内部类的对
象,进而使用他们的功能。
3、匿名内部类:没有名字的类,匿名类无法重用,主要是使用它的对象,实际上是得
到一个对象的同时而创建的一个匿名类,匿名类的使用我们着重关注对象。
语法:
InterfaceName object=new InterfaceName(){
//是必须实现的行为
};
或者:
SupperAbstractClassName object=new SupperAbstractClassName(){
//是必须实现的行为
};
排序时,比较器;
事件处理中监听器;
4、内明内部类在GUI中的应用:
awt组件:重组件,其中的控件是用C或者C++语言开发,速度慢,效率低。
swing组件:轻组件,其中的控件是用java语言开发,速度快,效率高。
由于历史的原因,有些事件还编排在awt包中。
4-1、创建一个自定义的窗体程序:
JFrame类,窗体的父类
public class MyFrame extends JFrame{
//属性: 自定义窗体所具有的特征,比如有那些控件,摆放位置,以及
背景色等。
public MyFrame(){
//对于属性中声明的属性,进行详细的初始化设计。
}
//行为
}
4-2、让指定控件可以接收我们的触发,并作出反映。
事件:是窗体程序的一种触发机制。例如:鼠标单击,鼠标双击,鼠标拖拽,
键盘按下,键盘弹起等等。是程序中某种事情的发生。
事件源(控件):由谁引起了某种事件。
事件处理程序:当某种事情发生时,如何应对。
监听器:专门负责某种事件监听的对象,进而可以有针对处理。
每种事件都有对应的接口(就是发生某种事件时,都有哪些处理行为)。
自定义一个类型,然后实现相应的事件接口,那么该类对象就有资格
作为该事件监听器了,运用事件处理程序完成时间处理。
绑定:为事件源(控件)指定事件处理监听器。
实现事件监听处理:
1、先确定事件源-->
被触发者(控件)
2、创建监听器类(实现了指定事件接口的类)-->
public [static] 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 Charater
5-1、装箱:基本类型-->引用型
自动装箱:由系统编译器完成
5-2、拆箱:引用型-->基本类型
自动拆箱:由系统编译器完成
5-3、包装类对象创建语法:
1)XXXName XXXObj=new XXXName(基本数据类型的值或者字符串);
2)XXXName XXXObj=基本数据类型的值;//自动装箱
5-4、从包装类对象中取出数据的方式:
1)显式的:包装类对象.XXXValue();
2)自动的:直接使用包装类对象进行运算;//自动拆箱
6、枚举类:其中主要包括常量。
意义:确定值的范围,常量的命名都是字符串(明确意义)可以定义在另外的类中。
语法:
访问修饰符 enum 类名{
常量;
属性?;
行为?;
构造方法?;
}
//color.ordinal() 返回值是常量的索引值,索引值从0开始。
题目:自定义一个季节枚举类,每个季节包括对应的三个月(firstMonth,
secondMonth,thirdMonth),可以有自定义构造器,可以有set,get方法,
自定义测试类,用到季节枚举对象,另外, 感受一下java中switch结构
适用于枚举。
7、访问修饰符
public 公开的:所在的类,同一个包中的类,其他包中的类都可见。
private 私有的:所在的类可见,其他类都不可见。
default 默认的:所在的类以及同一个包中的类可见,其它包中的类不可见。
protected保护的:所在的类、同一个包中的类,以及子类中可见。
内部类:就是定义在另外一类中的类
分类:成员内部类,静态内部类,匿名内部类
1、成员内部类:相当于所在内的一个函数,可以被public、default、private修饰
在其内部不能定义静态资源,常量除外,可以访问所在外部类的所有资源。
1-1、成员内部类的对象:
先实例化所在外部类的对象,然后通过外部类对象来调用内部类的构造方法,
来实例化对象。
2、静态内部类:是在定义类的时候前面加static 关键字,可以被public、default、
private修饰。
1-1、内部可以有静态资源。
1-2、静态内部类内部方法访问内部资源时,遵循和外部类一样的原则(静态方法只
能访问静态资源)。
1-3、静态内部类内部方法访问外部类资源时,只能访问静态资源。
题目:自定义一个外部类,在其中分别定义成员内部类,静态内部类,分别感受访问修
饰符在内部类中的特征,静态资源的应用,以及内部类访问外部类资源的功能特
征(特别是有重名的属性),在测试类中分别创建成员内部类和静态内部类的对
象,进而使用他们的功能。
3、匿名内部类:没有名字的类,匿名类无法重用,主要是使用它的对象,实际上是得
到一个对象的同时而创建的一个匿名类,匿名类的使用我们着重关注对象。
语法:
InterfaceName object=new InterfaceName(){
//是必须实现的行为
};
或者:
SupperAbstractClassName object=new SupperAbstractClassName(){
//是必须实现的行为
};
排序时,比较器;
事件处理中监听器;
4、内明内部类在GUI中的应用:
awt组件:重组件,其中的控件是用C或者C++语言开发,速度慢,效率低。
swing组件:轻组件,其中的控件是用java语言开发,速度快,效率高。
由于历史的原因,有些事件还编排在awt包中。
4-1、创建一个自定义的窗体程序:
JFrame类,窗体的父类
public class MyFrame extends JFrame{
//属性: 自定义窗体所具有的特征,比如有那些控件,摆放位置,以及
背景色等。
public MyFrame(){
//对于属性中声明的属性,进行详细的初始化设计。
}
//行为
}
4-2、让指定控件可以接收我们的触发,并作出反映。
事件:是窗体程序的一种触发机制。例如:鼠标单击,鼠标双击,鼠标拖拽,
键盘按下,键盘弹起等等。是程序中某种事情的发生。
事件源(控件):由谁引起了某种事件。
事件处理程序:当某种事情发生时,如何应对。
监听器:专门负责某种事件监听的对象,进而可以有针对处理。
每种事件都有对应的接口(就是发生某种事件时,都有哪些处理行为)。
自定义一个类型,然后实现相应的事件接口,那么该类对象就有资格
作为该事件监听器了,运用事件处理程序完成时间处理。
绑定:为事件源(控件)指定事件处理监听器。
实现事件监听处理:
1、先确定事件源-->
被触发者(控件)
2、创建监听器类(实现了指定事件接口的类)-->
public [static] 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 Charater
5-1、装箱:基本类型-->引用型
自动装箱:由系统编译器完成
5-2、拆箱:引用型-->基本类型
自动拆箱:由系统编译器完成
5-3、包装类对象创建语法:
1)XXXName XXXObj=new XXXName(基本数据类型的值或者字符串);
2)XXXName XXXObj=基本数据类型的值;//自动装箱
5-4、从包装类对象中取出数据的方式:
1)显式的:包装类对象.XXXValue();
2)自动的:直接使用包装类对象进行运算;//自动拆箱
6、枚举类:其中主要包括常量。
意义:确定值的范围,常量的命名都是字符串(明确意义)可以定义在另外的类中。
语法:
访问修饰符 enum 类名{
常量;
属性?;
行为?;
构造方法?;
}
//color.ordinal() 返回值是常量的索引值,索引值从0开始。
题目:自定义一个季节枚举类,每个季节包括对应的三个月(firstMonth,
secondMonth,thirdMonth),可以有自定义构造器,可以有set,get方法,
自定义测试类,用到季节枚举对象,另外, 感受一下java中switch结构
适用于枚举。
7、访问修饰符
public 公开的:所在的类,同一个包中的类,其他包中的类都可见。
private 私有的:所在的类可见,其他类都不可见。
default 默认的:所在的类以及同一个包中的类可见,其它包中的类不可见。
protected保护的:所在的类、同一个包中的类,以及子类中可见。