1 内部类
定义在外部类的成员位置上:
成员内部类
可以直接调用外部类的所有成员 包括私有的
外部类使用内部类成员
①直接创建外部类对象 然后.调用
②Outer.Inner xxx = Outer.new Inner(); //在主方法创建实例
③在外部类中 编写一个方法, 返回内部类对象 out.in xx = xx.getfunction();
静态内部类
使用static修饰
可以访问外部类的所有静态成员,但不能访问非静态成员
2 枚举类 enumeration
枚举是一组常量的集合 枚举是一种特殊的类 里面只包含一组有限的特定对象
例: 创建 season对象
季节名字 spring summer autumn winter
描述 春 夏 秋 冬
①自定义枚举
将构造器私有化 防止直接new
去掉set方法 保留get方法 防止成员被修改
在season类内部 直接创建固定的对象
优化 可以加入final修饰符
枚举对象根据需要 也可以有多个属性
②系统提供的关键字实现枚举
使用关键字 enum来替代class (此类会默认继承Enum类)
枚举对象必须放在枚举类队首 直接 spring("春天","温暖") 即 常量名(参数列表)
如果有多个对象使用逗号间隔
3 enum成员方法
tostring 返回当前对象名,子类可以重写该方法,用于返回对象信息
name 返回当前对象名 子类不能重写
ordinal 返回当前对象的位置号 默认从0开始
values 返回当前枚举类中的所有常量
valueOf 将字符串转为枚举对象,要求字符串必须为已有常量名
compareTo 比较两个枚举常量,比较的是位置号
位置号 枚举对象的次序 从0开始编号
使用enum关键字后,就不能再继承其他类了
枚举类也可以实现接口
4 注解
注解也称元数据 用于修饰 包 类 方法 属性 构造器 局部变量等等数据信息
和注释一样 注解不影响运行逻辑 但注解可以被编译或运行 相当于嵌入在代码中的补充信息
基本 Annotation 介绍
前面加@符号 当作关键字来使用 用于修饰支持它的程序元素
@Override 限定某个方法 是重写父类方法 该注解只能用于方法
如果没有重写方法,就会编译报错
@Target 是修饰注解的注解 称为元注解
@Deprecated 用于表示某个程序元素(方法 类)已经过时
不再推荐使用,但还是能用……
@SuppressWarnings 抑制编译器警告
SuppressWarnings({""}) 填充内容
java注解用法详解——@SuppressWarnings - 腾讯云开发者社区-腾讯云 (tencent.com)
元注解
①Retention 指定注解的作用范围 SOURSE CLASS RUNTIME
②Target 指定注解可以在哪些地方使用
③Documented 指定该注解是否会在javadoc体现
④Inherited 子类会继承父类注解