>[success] # 枚举类型
1. **一个可被列举的集合**,因为它是可被列举的,使得它必须有一个可穷尽的范围,例如四季,月份,方向等
>[danger] ##### 枚举推到
* 第一一个类用来去指定某个某个变量声明集合
~~~
import java.util.Properties;
public class EnumDirection {
// 定义枚举变量
private String desc;
public String getDesc() {
return desc;
}
public EnumDirection(String desc) {
this.desc = desc;
}
public static void main(String[] args) {
// 使用枚举
EnumDirection edUp = new EnumDirection("Up");
EnumDirection edDown = new EnumDirection("Down");
EnumDirection edLeft = new EnumDirection("Left");
EnumDirection edRight = new EnumDirection("Right");
System.out.println(edUp.getDesc());
System.out.println(edDown.getDesc());
System.out.println(edLeft.getDesc());
System.out.println(edRight.getDesc());
// TODO: 不足点 需要不停创建实例并且并么有约束性质,使用人还可以随意定义
EnumDirection edCCCC = new EnumDirection("CCCC");
}
}
~~~
* 使用final static 等进行限制
~~~
public class EnumDirection {
// 定义枚举变量
private String desc;
// 私有构造方法,此时构造方法只能内部使用
private EnumDirection(String desc) {
this.desc = desc;
}
// 2.声明本类类型的引用指向本类类型的对象
public static final EnumDirection UP = new EnumDirection("Up");
public static final EnumDirection DOWN = new EnumDirection("Down");
public static final EnumDirection LEFT = new EnumDirection("Left");
public static final EnumDirection RIGHT = new EnumDirection("Right");
// 通过公有的get方法可以在本类的外部访问该类成员变量的数值
public String getDesc() {
return desc;
}
}
~~~
~~~
public class App {
public static void main(String[] args) throws Exception {
EnumDirection ed = EnumDirection.UP;
System.out.println(ed.getDesc());
}
}
~~~
>[info] ## java 枚举类型
1. java5 中引入了`enum` 关键字,定义枚举类型
2. 枚举值就是当前类的类型,也就是指向本类的对象,默认使用public static final关键字共同修饰,因此采用**枚举类型.的方式调用**
3. 枚举类可以自定义构造方法,但是构造方法的修饰符必须是private,默认也是**私有**的
>[danger] ##### 案例代码
* 因为本质还是当前构造函数赋值,因此获取时候还需要用变量接受,相比来说可以不用重复去书写`public static final`
* 如果直接获取是其本身
~~~
public enum EnumDirection {
// 代码编译后大概 public static final EnumDirection UP = new EnumDirection("UP");
UP("UP1"),
DOWN("DOWN"),
LEFT("LEFT"),
RIGHT("RIGHT"),
OTHER; // 没有参数
private String desc;
private EnumDirection(String desc) {
this.desc = desc;
}
// 如果枚举都是没参数的不用写构造函数默认构造函数没参数
// 因为上面已经有有参数的构造函数因此要使用重载
private EnumDirection() {
}
// 获取枚举描述
public String getDesc() {
return this.desc;
}
}
~~~
* 使用
~~~
public class App {
public static void main(String[] args) {
EnumDirection UP = EnumDirection.UP;
System.out.println(UP.getDesc()); // UP1
System.out.println(UP); // UP
}
}
~~~
- windows -- 环境变量
- Vscode -- 编写java
- 初始java
- java -- 关键字
- 编写第一个java程序
- java -- 注释
- 计算机存储 -- 进制
- java -- 类型
- java -- 变量
- 数字类型
- 布尔类型
- 字符类型
- 类型转换
- 双等比较是什么
- java -- 运算符
- 算数运算符
- 字符串拼接
- 关系/比较运算符
- 自增减运算符
- 逻辑运算符
- 三目运算
- 赋值运算符
- 移位运算符
- 位运算符
- 运算符优先级
- java -- 流程控制语句
- if /else if /if -- 判断
- switch case分支结构
- for -- 循环
- 用双重for循环
- while -- 循环
- do while -- 循环
- 案例练习
- java -- 数组
- 数组的存储
- 数组的增删改查
- 数组的特点
- 数组案例
- 二维数组
- 数组的工具方法
- java -- 方法
- java -- 方法的重载
- java -- 方法的调用流程
- java -- 类方法传参注意事项
- java -- 方法练习案例
- 对比 return break continue
- for each循环
- java -- 基础练习
- java -- 面向对象
- java -- 创建类和对象
- java -- 访问控制符
- java -- 类成员方法
- java -- 构造方法
- java -- this
- java -- 封装
- java -- 对象内存图
- java -- 创建对象案例
- java -- static
- java -- 继承
- super -- 关键字
- java -- 构造块和静态代码块
- java -- 重写
- java -- final
- java -- 多态
- java -- 抽象类
- java -- 接口
- 引用类型数据转换
- 综合案例
- java -- 内部类
- java -- 回调模式
- java -- 枚举类型
- java -- switch 使用枚举
- java -- 枚举方法使用
- java -- 枚举类实现接口
- java -- javaBean
- java -- package 包
- java -- import
- java -- 递归练习
- java -- 设计模式
- 单例模式
- java -- 注解
- java -- 元注解
- Java -- 核心类库
- java -- 处理字符串
- Java -- String
- String -- 常用方法
- String -- 正则
- Java -- StringBuilder 和 StringBuffer
- 知识点
- Java -- StringJoiner 字符串拼接
- 练习题
- 字符串的总结
- Java -- 包装类
- Integer
- Double
- Boolean
- Character
- java -- 集合类
- java -- util.Collection
- Iterator接口
- java -- util.List
- java -- ArrayList
- java -- util.Queue
- java -- util.Set
- java -- util.Map
- java -- util.Collections
- Java -- Math
- Java -- java.lang
- Java -- Object
- Java -- 获取当前时间戳
- Java -- 异常
- Java -- java.util
- java -- Date
- java -- Calender
- Java -- java.text
- Java -- SimpleDateFormat
- Java -- java.time
- Java -- java.io
- java -- io.File
- java -- 泛型
- IDEA -- 用法