一.枚举
1.简介
枚举类型是JDK1.5引入的新的类型,本质上就是一个类,是自定义的数据类型
作用:
- 用来限制可能的取值个数
- 提高代码可读性和扩展性
适用的场合:有限的取值个数
2.用法
使用 enum 关键字 (enumeration)
定义方法 public enum 枚举类型名{ }
特性:
-
枚举类中可以属性,方法,构造方法。
-
枚举类中的构造方法必须为私有的,不允许外部创建对象,只能在内部创建
-
在内部创建对象时,位于当前类的第一行
有参的构造: 对象名(参数)
无参的构造:对象名() 小括号可以省略
二.泛型
1.简介
泛型就是参数化类型,将一个数据类型作为参数
在定义时不知道用什么类型,在使用时指定具体的类型,类似于参数,称为参数化类型
分类:
- 泛型类
- 泛型接口
- 泛型方法
2.泛型类
-
表示类中有一个未知的类型
-
定义方法 : public class 类名{ },T表示一种数据类型,是泛型的类型参数,可以使用任意标识 一般 使用 T K V E
-
可以在类中使用T,表示一个类型
-
在使用类时需要在类名后通过<类型>指定具体类型,就是将T表示的类型传入
类名<类型> 对象名 = new 类名<>();
-
泛型只能传入引用类型,如果是基本类型,就使用包装类
3.泛型接口
-
表示接口中有一个未知的类型
-
定义方法 : public interface 接口名{ }
-
可以在接口中使用T,表示一个类型
-
在使用类时需要在接口名后通过<类型>指定具体类型,就是将T表示的类型传入
4.泛型方法
- 表示方法中有一个未知的类型
- 定义方法 : public 修饰符 返回值类型 方法名(){ }
- 可以在方法中使用T,表示一个类型
- 在调用方法时指定具体的类型
- 应用场景: 如果类和接口都没有定义泛型,但想在方法中使用泛型,此时可以定义为泛型方法
5.泛型的特性
-
泛型的类型参数必须是引用类型
-
泛型的类型参数可以有多个
-
可以使用泛型通配符,两种
<? extends 类型T> 参数类型必须是T或者T的子类 <? super 类型T> 参数类型必须是T或者T的父类
三.内部类
1.简介
定义在另一个类里面的类,称为内部类 InnerClass
包含内部类的类,称为外部类 Outer Class
分类:
- 成员内部类
- 静态内部类
- 局部内部类
- 匿名内部类,最常用
2.用法
2.1成员内部类
在外部类中访问内部类: 可以访问内部类中所有的属性,方法,包含private修饰的。 对象.属性名/方法名
在外部类外面访问内部类:不能访问private修饰的属性,方法。 先创建外部类对象,在创建内部类对象 对象.属性名/方法名
在内部类中访问外部类: 直接访问
2.2 静态内部类
使用static修饰的成员内部类
2.3局部内部类
局部内部类,也称为方法内部类,定义在外部类的方法中的类
- 只能在外部类的方法中使用
2.4匿名内部类
就是没有名字的内部类。
创建匿名内部类,必须作为new语句的一部分来声明
类名/接口名 对象名 = new 类名/接口名(){
//匿名内部类
};