当前位置: 首页 > news >正文

枚举类型Enum

枚举类Enum

what:

image-20250216180734870

首先他是个类 特殊的类 不过是

原版:

public enum A {
    X,Y,Z;
}

反编译字节码:

public final class A extends java.lang.Enum<A>{
    public static final A X = new A(); //修饰变量
    public static final A Y = new A();
    public static final A Z = new A();
    
    public static A[] values();
    public static A valueOf(java.lang.String)    
}
//十分特殊  是个final class:阻止类被继承 类的行为不会被更改
//类A 继承了Enum属性 并且还给Enum类 类型参数
//java.lang 是 Java 编程语言里一个极为关键的包,它默认会被每个 Java 程序自动导入,无需显式地使用 import 语句来引入
public final class A extends javalangEnum<A>{
    
}



	
    

/*
public static final A X = new A();
public static final A Y = new A();
public static final A Z = new A();
analys:
X Y Z 是A类实例化 
A是public final class  不可继承类
static:
	what:
		表示变量属于该类本身可以随时访问
		static 修饰内部类
public:
	what:
        表示只要能访问到该变量的类 就能访问该变量 
        1.使用static变量 不用实例化对于public的变量也可以直接访问,
        2.对于不是static的变量必须实例化进行访问

final:
    what:
        修饰变量:表示变量不可以被改变
        修饰类:类无法被继承重写方法over
combinition:
	public static:
		what:
			修饰变量/内部类:公共 属于该类的变量
	public  final:
		what:
			公共的 无法被修改的
	public static final:
		公共的 属于该类的静态内部类  无法被修改
		


public static final A X = new A();
summarize the analysis:
	 内部类 公共的 属于A类的静态类 无法被改变的X
	 这些 X Y Z 只属于A 并且创造的 X Y Z 不会创建 新的X Y Z因为 X Y Z 是静态的始终属于A

public static A[] values();
analysis:
    Weekday[] allWeekdays = Weekday.values();
    Weekday.values() 返回一个包含 MONDAY 到 SUNDAY 所有枚举实例的数组
example:
	enum Weekday {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;
}

    public class Main {
        public static void main(String[] args) {
            // 调用 values() 方法获取枚举实例数组
            Weekday[] allWeekdays = Weekday.values();
            for (Weekday weekday : allWeekdays) {
                System.out.println(weekday);
            }
        }
    }
public static A valueOf(java.lang.String)
analysis:
	Weekday weekday = Weekday.valueOf(input);
	input = 输入 字符串 "MONDAY" 返回枚举类型 枚举类型MONDAY
	枚举类型MONDAY 是A类 有自己的方法 可以输入自己做出操作
example:
        enum Weekday {
        MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;

        public void performTask() {
            switch (this) {
                case MONDAY:
                    System.out.println("开始新一周的工作,整理本周计划");
                    break;
                case TUESDAY:
                    System.out.println("参加团队会议,汇报工作进展");
                    break;
                // 其他星期的任务...
                default:
                    break;
            }
        }
    }

    import java.util.Scanner;

    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入星期名称(如 MONDAY):");
            String input = scanner.nextLine();
            try {
                Weekday weekday = Weekday.valueOf(input);
                weekday.performTask();
            } catch (IllegalArgumentException e) {
                System.out.println("输入的星期名称无效,请重新输入。");
            }
            scanner.close();
        }
    }

相关文章:

  • DeepSeek-R1 + Cherry Studio 本地部署打造个人 AI 知识库
  • C语言01
  • Kimi k1.5:继Deepseek R1 后多模态 AI 的新标杆
  • 低成本、高效率且成熟的电商实时数据采集方案:梦想成真?
  • 放大镜效果
  • 图论算法篇:邻接矩阵以及邻接表和链式前向星建图
  • winfrom实现人脸识别比对功能
  • 大模型开发实战篇5:多模态--文生图模型API
  • 如何设置Python爬虫的User-Agent?
  • torch-xla动态shape——通过torch.nonzero分析mhlo实现
  • 第六天:requests库的用法
  • JS数组扁平化
  • Java与Go相比,有什么独特的优势
  • Openshift或者K8S上部署xxl-job
  • 电商分布式场景中如何保证数据库与缓存的一致性?实战方案与Java代码详解
  • vtkCamera类的Dolly函数作用及相机拉近拉远
  • 【力扣】199.二叉树的右视图
  • Pygame中自定义事件处理的方法2-1
  • DeepSeek-V3模型底层架构的核心技术一(多Token预测(MTP)技术)
  • Python 内置函数 isinstance
  • 王耀庆化身“罗朱”说书人,一人挑战15个角色
  • 一揽子十条货币政策措施出炉:降准降息,设立五千亿服务消费与养老再贷款
  • 潘功胜:降准0.5个百分点,降低政策利率0.1个百分点
  • 中国公民免签赴马来西亚的停留天数如何计算?使馆明确
  • 市值增22倍,巴菲特30年重仓股盘点
  • 单阶段遭遇零封偶像奥沙利文,赵心童要让丁俊晖预言成真