java学习之路3--枚举

文章目录

    • 枚举

枚举

  1. 也是一种特殊的类,可以表示一组常量,可以定义对象
  2. 一个简单的实例:
enum Color
{
     
red,green,blue;
}
public class Test
{
     
	public static void main(String[]args)
	{
     
	Color c1=Color.red;
	System.out.println(c1);
	}
}

  1. 迭代枚举元素:使用for来迭代
enum Color
{
     
    RED, GREEN, BLUE;
}
public class MyClass {
     
  public static void main(String[] args) {
     
    for (Color myVar : Color.values()) {
     
      System.out.println(myVar);
    }
  }
}
  1. 几种方法:
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"));
    }
}
  1. 枚举与其他类一样,都可以有变量,成员方法,构造函数(只可为private):
enum Color
{
     
    RED, GREEN, BLUE;
 
    // 构造函数
    private Color()
    {
     
        System.out.println("Constructor called for : " + this.toString());
    }
 
    public void colorInfo()
    {
     
        System.out.println("Universal Color");
    }
}
 
public class Test
{
         
    // 输出
    public static void main(String[] args)
    {
     
        Color c1 = Color.RED;
        System.out.println(c1);
        c1.colorInfo();
    }
}

你可能感兴趣的:(java,java)