package nume_1;
/**
* 枚舉
*
* 定義:和常量一樣的,是static和final的
*
* 為什麼用枚舉不直接用,static final的直接用
*
* 1.static final定義的直接是個具體的值,這個值得效果和static和final定義的常量效果一樣
*
* 2.static final定義的不安全
*
*
*
* 枚舉的常用方法
*
*1.values() //可以把枚舉類型的成員以數組的類型傳回
*2.valueOf() //可以把正常的String的類型換成enum
*3.compareTo() //用于比較枚舉定義的時候的順序
*4.ordinal() //枚舉位置的索引,第一個0
*
*
*/
public class Nume_Main_1 {
public static void doit_sf(int c) {
switch (c) {
case Season_sf.Spring:
System.out.println("sf-春天");
break;
case Season_sf.Summer:
System.out.println("sf-夏天");
break;
case Season_sf.Autumn:
System.out.println("sf-秋天");
break;
case Season_sf.Winter:
System.out.println("sf-冬天");
break;
}
}
public static void doit_nume(Season_enum s) {
switch (s) {
case Spring:
System.out.println("enum-春天");
break;
case Summer:
System.out.println("enum-夏天");
break;
case Autumn:
System.out.println("enum-秋天");
break;
case Winter:
System.out.println("enum-冬天");
break;
}
}
public static void main(String[] args) {
// TODO 自動生成的方法存根
// 對比static、final和枚舉的效果
Nume_Main_1.doit_sf(1);// 這裡就是sf的缺點,可以用具體的值來使用這個函數,不安全;
// Nume_Main_1.doit_enum(1);報錯
// Nume_Main_1.doit_enum(Season_enum);報錯,因為沒有對象
Nume_Main_1.doit_nume(Season_enum.Spring);// 這裡就是可以,因為nume裡面的就是對象
//values()方法使用
Season_enum [] enums=Season_enum.values();
for (Season_enum season_enum : enums) {
System.out.println(season_enum);
}
//valueOf()方法使用和直接.效果一樣
System.out.println("-------------------");
Season_enum enum1=Season_enum.valueOf("Spring");//這個引号裡面的必須是真實存在的
System.out.println(enum1);
System.out.println(Season_enum.Spring);
//compareTo()方法//自身順序減去括号裡面的順序
System.out.println("-------------------");
System.out.println(Season_enum.Spring.compareTo(Season_enum.Autumn));
System.out.println(Season_enum.Autumn.compareTo(Season_enum.Autumn));
System.out.println(Season_enum.Autumn.compareTo(Season_enum.Summer));
System.out.println("-------------------");
// ordinal();枚舉位置的索引,第一個0;
System.out.println(Season_enum.Autumn.ordinal());
}
}
package nume_1;
public interface Season_sf {
public static final int Spring = 1;
public static final int Summer = 2;
public static final int Autumn = 3;
public static final int Winter = 4;
}
package nume_1;
public enum Season_enum {
Spring, Summer, Autumn, Winter;
// 1. 這裡是可以用逗号結尾也可以的是什麼都不寫,最好的是;好
//這裡每個Spring···都是對象
}
package com.zdft.mdm.pricerules.util;
/**
* @Author yhc
* @Date 2022-08-09 10:02
**/
public enum priceEnum {
RED("紅色", 15), GREEN("綠色", 2), BLANK("白色", 3), YELLO("黃色", 4);
// 成員變量
private String name;
private int index;
// 構造方法
private priceEnum(String name, int index) {
this.name = name;
this.index = index;
}
public static void main(String[] args) {
System.out.println( priceEnum.valueOf("RED").name);
System.out.println("===========================");
System.out.println(priceEnum.RED.ordinal());
for (priceEnum s:priceEnum.values()
) {
System.out.println(s.name+":"+s.index);
}
}
}