枚举类型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();
        }
    }

use:

public  class animals {
    public static String name = "你好";

    public String getName() {
        return name;
    }

    /*
    what fault:
        创建新实体 如果实例化一个 那么会无限的创建属于自己的成员变量
    how change:
        将无线创建的成员变量变成 static 只属于该类共同体的 成员变量就不会无线创建下去 如同枚举类型 且 该成员变量类可以传入参数
    what:
        实例化自己的成员变量时 给构造函数传入参数 共用一套static 成员变量
     */
    animals a = new animals();
    
}

main:


public class Main {
    public static void main(String[] args) {

        animals animals = new animals();
        // 访问静态变量 name
        System.out.println(animals.name);
        // 也可以直接通过类名访问静态变量
        System.out.println(animals.name);
        // 调用 getName 方法
        System.out.println(animals.getName());
    }


}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值