一、内部类
1、引入
类的成员包括:
(1)属性:成员变量;
(2)方法:成员方法;
(3)构造器;
(4)代码块;
(5)内部类;
其中1、2是代表这类事物的特征;
其中3、4是初始化类和对象用的;
其中5是协助完成2的功能的实现,表现;
2、内部类
当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构最好使用内部类。
在Java中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者称为外部类。
Inner class一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称。
Inner class的名字不能与包含它的外部类类名相同;
3、分类
根据内部类的所在的位置不同:
(1)成员内部类:(static成员内部类和非static成员内部类)外部类中方法外;
(2)局部内部类:匿名内部类,方法体内(也可以在代码块内)
4、
二、成员内部类
1、概述及分类
成员内部类:定义在 类中方法外 的类。
(1)有 static 修饰的:静态成员内部类,简称 静态内部类;
(2)没有 static 修饰的:非静态成员内部类,简称 成员内部类;
思考:什么情况下会用到成员内部类(方法外声明的?)
当描述一个事物时,发现它的内部还有一个完整的结构需要用一个类来描述;
并且发现这内部的结构,如果独立存在是没有意义的,必须在这个外部类中才有意义。而且这个内部结构只为这个外部类服务。例如:Body身体,发现它内部还有完整的结果,如:心脏,发现心脏单独创建对象没有意义,只有在 Body 对象中才有意义,而且只为 Body 对象服务。
2、静态成员内部类(静态内部类)
(1)语法格式
【修饰符】 class 外部类 【 extends 父类】 【implements 父接口们】{
【其他修饰符】 static class 内部类 【 extends 父类】 【implements 父接口们】{
}
}
(2)
(3)
(4)
(5)