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···都是对象
}
转载请注明原文地址:https://blackberry.8miu.com/read-31585.html