package ;
/**
* User: Json
* Date: 2021/8/30
* //枚举类 和注解
* //理解 类的对象只有有限个 确定的
* // 当需要定义一组常量 强烈建议使用枚举类
* // 如果枚举类中只有一个对象 则可以作为单例模式的实现方法
*
* //如果定义枚举类
* //1. jdk5.0之前 自定义枚举类
* //2. jdk5.0之后 可以使用enum关键字定义枚举类
* //3. 定义的枚举类 默认继承 class java.lang.Enum 不需要再toString() 了
*
* 使用枚举类实现接口的情况
* 1. 实现接口 需要实现抽象方法
* 2. 让枚举类的对象分别实现接口的抽象方法
**/
//自定义枚举类
class Season{
//1.需要使用 private final 修饰 最终的
private final String seasonName;
private final String seasonDesc;
//2.私有化类的构造器
private Season(String seasonName,String seasonDesc){
this.seasonName=seasonName;
this.seasonDesc=seasonDesc;
}
//3.提供当前枚举类的多个对象 public static fina 多个关键字修饰
public static final Season SEASON= new Season("春天","1");
public static final Season SEASON1= new Season("夏天","2");
public static final Season SEASON2= new Season("秋天","3");
public static final Season SEASON3= new Season("冬天","4");
//4. 如果你有其他诉求
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
@Override
public String toString() {
return "Season{" +
"seasonName='" + seasonName + '\'' +
", seasonDesc='" + seasonDesc + '\'' +
'}';
}
}
//使用关键字定义 enum
enum Season1 implements showTest{
//1.提供当前枚举类的对象 多个对象直接用逗号隔开 , 必须先声明对象
//分别实现
SEASON("春天","1"){
@Override
public void show() {
System.out.println("我来1了");
}
},
SEASON1("夏天","2") {
@Override
public void show() {
System.out.println("我来2了");
}
},
SEASON2("秋天","3") {
@Override
public void show() {
System.out.println("我来3了");
}
},
SEASON3("冬天","4") {
@Override
public void show() {
System.out.println("我来4了");
}
};
//1.需要使用 private final 修饰 最终的
private final String seasonName;
private final String seasonDesc;
//2.私有化类的构造器
private Season1(String seasonName,String seasonDesc){
this.seasonName=seasonName;
this.seasonDesc=seasonDesc;
}
//4. 如果你有其他诉求
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
//整体实现
// @Override
// public void show() {
// System.out.println("我来了");
// }
// @Override
// public String toString() {
// return "Season{" +
// "seasonName='" + seasonName + '\'' +
// ", seasonDesc='" + seasonDesc + '\'' +
// '}';
// }
}
interface showTest{
void show();
}
//定义常量
enum Status{
FREE,BUSY,VOCATION
}
public class Json {
public static void main(String[] args) {
System.out.println("加油了");
Season season = Season.SEASON;
Season1 season1 = Season1.SEASON1;
System.out.println(Season1.class.getSuperclass());
// Enum 常用方法 values() 获取枚举类的 状态
Season1[] values=Season1.values();
for (int i=0;i<values.length;i++){
System.out.println(values[i]);
}
// valueOf() 你要获取枚举里的对象
Season1 season11 = Season1.valueOf("SEASON1");
System.out.println(season11);
}
}JAVA 枚举类详解
原创
©著作权归作者所有:来自51CTO博客作者json____的原创作品,请联系作者获取转载授权,否则将追究法律责任
下一篇:java8 环境安装
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java 枚举类 详解
Java 枚举类详解
Java教程Java开发 程序开发 -
Java枚举类enum详解
枚举类enum是JDK1.5引入的,之前都是用public static final int enum_value来代替枚举类的。枚举类enum是一种特殊的类,它默认继承
java javascript ViewUI 枚举类 System -
Java基础(十四):枚举类详解
Java枚举全解析:从基础定义、特性方法到单例最佳实践,解锁类型安全常量的高效用法与设计优势。
java python android Java System -
ldp 0和3标签qos
ldp协议基础0-2的20次0-15特殊标签0显式空标签 3隐式空标签 在ldp动态标签分发协议中,倒数第二跳弹出标签,力 在ldp动态分发标签的时候,egress会给自己的上游(倒数第二跳路由器)
ldp 0和3标签qos #网络 #网络协议 迭代 PHP -
基于ZYNQ FPGA+AI+ARM 的卷积神经网络加速器设计
实现高效计算加速。实验结果表明,该设计能显著提升CNN推理速度和能效,适用于嵌入式设备部署。
#fpga开发 #cnn #人工智能 #无人机 #RK3588
















