enum[枚举]_基本特性

什么是enum(枚举):

enum是java语言关键字, 允许通过该关键字创建一个具有名的值的新类型,而这些具有名的值可以作为常规的程序组件使用。

 

enum基本的特性:

1. 调用enum的values方法返回一个enum实例的数组,可以循环使用values()返回的数组。

 

//当使用关键字enum定义一个Enum类型时,编译器会自动为你生成一个类。 //这个类继承自java.lang.Enum。 Enum是一个抽象类, 实现了Comparable接口,Serializable接口 //所以可以调用compareTo方法进行enum实例的比较。Enum也实现了equals方法, //hashCode方法。 可以使用 == 来比较两个enum实例是否相等. public enum Shrubbery{ GROUND, CRAWLING, HANGING } public class EnumClass { public static void main(String[] args) { for(Shrubbery s : Shrubbery.values()){ //ordinal()方法返回一个int值,这是每个enum实例在声明时的次序, 从0开始。 System.out.println(s + " ordinal: " + s.ordinal()); //调用抽象类Enum的compareTo方法比较两个实例的声明次序是否相等 System.out.println(s.compareTo(Shrubbery.CRAWLING)); //调用抽象类Enum的compareTo方法比较是否同一个实例 System.out.println(s.equals(Shrubbery.CRAWLING)); //使用 == 比较是否同一个实例 System.out.println(s == Shrubbery.CRAWLING); //返回声明该enum实例所属的enum类 System.out.println(s.getDeclaringClass()); //返回声明enum实例时的名字,与调用toString方法效果一样 System.out.println(s.name()); System.out.println("---------------------"); } for(String s : "HANGING CRAWLING GROUND".split(" ")){ //valueOf是Enum的一个static方法,根据给定的名字返回相应的enum实例 Shrubbery shrub = Enum.valueOf(Shrubbery.class, s); System.out.println(shrub); } } } // 代码参考与<>

2.  静态导入应用于enum

public class StaticImport { public static void main(String[] args) { //没有使用static导入,引用enum实例 System.out.println(Shrubbery.GROUND); System.out.println(Shrubbery.CRAWLING); System.out.println(Shrubbery.HANGING); //使用static导入,引用enum实例 System.out.println(GROUND); System.out.println(CRAWLING); System.out.println(HANGING); } }

你可能感兴趣的:(JAVA)