JAVA每日总结2021.9.22

今日学习:

枚举类型

package a;
public class EnumTest {
enum Size{SMALL,MEDIUM,LARGE};
public static void main(String[] args) {
Size s=Size.SMALL;
Size t=Size.LARGE;
//s和t引用同一个对象?
System.out.println(s==t);
//是原始数据类型吗?
System.out.println(s.getClass().isPrimitive());
//从字符串中转换
//.isPrimitive()是用来判断是否是基本类型的:void.isPrimitive() //true;
//.class用来返回该类的Class对象的实例:int.class == intclass //基本类型
Size u=Size.valueOf("SMALL");
System.out.println(s==u); //true
//列出它的所有值
for(Size value:Size.values())
{
System.out.println(value);
}
}
}

 

values(), ordinal() 和 valueOf() 方法

enum 定义的枚举类默认继承了 java.lang.Enum 类,并实现了 java.lang.Seriablizable 和 java.lang.Comparable 两个接口。

values(), ordinal() 和 valueOf() 方法位于 java.lang.Enum 类中:

  • values() 返回枚举类中所有的值。
  • ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。
  • valueOf()方法返回指定字符串值的枚举常量。
  • enum Color
    {
        RED, GREEN, BLUE;
    }
     
    public class Test
    {
        public static void main(String[] args)
        {
            // 调用 values()
            Color[] arr = Color.values();
     
            // 迭代枚举
            for (Color col : arr)
            {
                // 查看索引
                System.out.println(col + " at index " + col.ordinal());
            }
     
            // 使用 valueOf() 返回枚举常量,不存在的会报错 IllegalArgumentException
            System.out.println(Color.valueOf("RED"));
            // System.out.println(Color.valueOf("WHITE"));
        }
    }
posted @ 2021-09-22 23:56  清谦  阅读(35)  评论(0)    收藏  举报