枚举类enum

1枚举基础

复制代码
  1 import java.util.*;
  2 
  3 public class MyTest {
  4     /**
  5      * 枚举实例
  6      * 1.不能在其他类中实例化
  7      * 2.实例对象默认调用构造方法初始化。
  8      * 3.switch语句里面可用枚举
  9      *         1.并不是toString方法
 10      *         2.case:只能能是枚举实例
 11      *         3.不需要写枚举类.
 12      * 4.
 13      *
 14      *
 15      * 回顾:
 16      * 父类的toString只会输出父类的值
 17      */
 18     public static void test() {
 19 //        MyEnum e = new MyEnum();
 20         System.out.println(MyEnum.GREEN);
 21 
 22         switch (MyEnum.BLUE) {
 23             case RED -> System.out.println("红色");
 24             case BLUE -> System.out.println("蓝色");
 25             case GREEN -> System.out.println("绿色");
 26             default -> System.out.println("其它颜色");
 27         }
 28         switch (MyEnum.BLUE) {
 29             case RED : System.out.println("红色");
 30                 break;
 31             case BLUE : System.out.println("蓝色");break;
 32             case GREEN : System.out.println("绿色");break;
 33             default : System.out.println("其它颜色");break;
 34         }
 35         int num = 9;
 36         //回顾
 37         Random random = new Random();
 38         int temp =switch (num){
 39             case 10-> 100;
 40             default -> random.nextInt(60,81);
 41         };
 42         System.out.println(temp);
 43 
 44 //        Student student1 = new Student();
 45 //        System.out.println(student1);//张三,返回的是父类的name
 46         switch (MyEnum.GREEN.getValue()) {
 47             case "红色"-> System.out.println("红色");
 48             case "绿色"-> System.out.println("绿色");
 49             case "蓝色"-> System.out.println("蓝色");
 50             default -> System.out.println("其它颜色");
 51         }
 52 
 53         switch (MyEnum.BLUE.toString()){
 54             case "白色"-> System.out.println("白色");
 55             default -> System.out.println("其他颜色");
 56         }
 57     }
 58 
 59     /**
 60      * 枚举类
 61      * 枚举类的静态成员和方法是属于枚举类的
 62      */
 63     public static void test1(){
 64         //        MyEnum.GREEN.show();
 65         //        System.out.println(MyEnum.GREEN.c);
 66     }
 67 
 68     /**
 69      * Enum类
 70      * 遍历枚举实例
 71      */
 72     public static void test2(){
 73         //得到所有枚举实例
 74         MyEnum[] values = MyEnum.values();
 75 
 76         //通过流遍历
 77         //forEach是消费者
 78         //元素类型就是枚举实例
 79         Arrays.stream(values).forEach((a)->{
 80             System.out.println(a.getValue());
 81         });
 82         //通过for循环遍历
 83         for (int i =0,len=values.length;i<len;i++){
 84             System.out.println(values[i].getValue());
 85         }
 86         //返回索引
 87         System.out.println(MyEnum.GREEN.ordinal());
 88         //字符串变为枚举实例
 89         System.out.println(MyEnum.valueOf("GREEN"));
 90         System.out.println(MyEnum.RED.compareTo(MyEnum.BLUE));//-2
 91     }
 92 
 93     /**
 94      * 枚举工具类
 95      * 怎么将枚举元素放到特殊容器中
 96      */
 97     public static void test3(){
 98         /**
 99          * EnumMap<K extends Enum<K>, V>
100          */
101         EnumMap<MyEnum,String> map = new EnumMap(MyEnum.class);
102         Map<MyEnum,String> hashMap = new HashMap<>();
103         map = new EnumMap<>(hashMap);
104         map = new EnumMap<>(map);
105         Enum[] enums = MyEnum.values();
106         //EnumSet<E extends Enum<E>> 是一个抽象类
107         //出发点容易错
108 //        EnumSet<MyEnum> set = new EnumSet<>(MyEnum.class,enums);
109         EnumSet<MyEnum> set1 =EnumSet.of(MyEnum.RED,MyEnum.BLUE);
110         EnumSet<MyEnum> set2 =EnumSet.allOf(MyEnum.class);
111 
112     }
113 
114     public static void main(String[] args) {
115 //        test2();
116     }
117 }
复制代码

 

posted @   liu/564  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示