Class1 内部类
1.def:是类中的五大成分之一(成员变量,方法,构造器,内部类,代码块),如果一个类定义在另一个类的内部,这个类就是内部类
2.应用:当一个类的内部,包含了一个完整的事物,且这个事物没有必要单独设计时,就可以把这个事物设计成内部类。
public class phone{
// 内部类
class card{
}
}
class1.1成员内部类
1.def:就是类中的一个普通成员,类似与普通的成员变量,成员方法
2.创建内部类对象格式:外部类名.内部类名 对象名 = new 外部类(...).new 内部类(...);
3.成员内部类中访问其他成员的特点:
①成员内部类内部不允许存在任何static变量或方法(可以用public static final来定义常量)
②成员内部类的实例方法中,可以直解直接访问外部类的成员变量
③可以在成员内部类的实例方法中,拿到当前外部类对象,格式是:外部类名.this
class1.2 静态内部类
1.def:有static修饰的内部类,属于外部类自己持有
2.创建静态内部类对象格式:外部类名.内部类名 对象名 = new 外部类.内部类(…)
3.note:可以直接访问外部类的静态成员,不可以直接访问实例成员
class1.3 局部内部类(了解)
1.def:局部内部类是定义在在方法中、代码块中、构造器等执行体中
class1.4 匿名内部类
1.def:匿名内部类是 Java 编程语言中一种特殊的类,它没有显式地定义类名,而是在创建对象时通过传递实现了某个接口或继承了某个类的代码块来定义类。通常,我们使用它来简化代码、减少类的数量和更高效地编写事件处理程序等。
2.格式:这才是匿名内部类格式,且可以接对象
3.特点:匿名内部类本质就是一个子类,并会立即创建出一个子类对象
4.作用:①更方便的创建出一个子类对象②匿名内部类通常作为一个参数传输给方法
Class2 枚举
class2.1 枚举的概述
1.def:本质上是一种特殊类,成员变量,成员方法都可以有
2.格式:
3.note:①枚举类中的第一行,只能写一些合法的标识符(名称),多个名称用逗号隔开
②这些名称。本质上是常量,每个常量都会记住枚举类的一个对象
4.枚举类的特点:
①枚举类的第一行只能罗列一些名称,这些名称都是常量,并且每个常量记住的都 是枚举类的一个对象。
![](https://i-blog.csdnimg.cn/blog_migrate/133d91a0602f8971d4bbd29efc7afa76.png)
· 选择定义枚举表示一组信息,并作为参数传输:代码可读性好
![](https://i-blog.csdnimg.cn/blog_migrate/2e50a0db722379272355f705ee95f15a.png)
Class3 泛型
class3.1 泛型基础
1.def:l 定义类、接口、方法时,同时声明了一个或者多个类型变量(如:<E>) ,称为泛型类、泛型接口,泛型方法、它们统称为泛型。
2.作用:泛型提供了在编译阶段约束所能操作的数据类型,并自动进行检查的能力,这样可以避免强制类型转换,及其可能出现的异常。
3. 泛型的本质:把具体的数据类型作为参数传给类型变量
class3.2 泛型类
class3.3 泛型接口
class3.3 泛型方法
1.格式:修饰符 <类型变量,类型变量,…> 返回值类型 方法名(形参列表) { ...}
2.通配符:就是 “?” ,可以在“使用泛型”的时候代表一切类型
note:①<?extends Car> :?能接收的是Car或是Car的子类
②<? super Car>:?能接收的是Car或是Car的父类