编程语言
首页 > 编程语言> > [学习笔记] Java枚举

[学习笔记] Java枚举

作者:互联网

枚举

在Java中,枚举是一种特殊的类,一般用于表示一组常量;

定义枚举时使用enum关键字,各个常量使用逗号分隔;

enum Color    //定义枚举
{ 
    RED, GREEN, BLUE; 
} 

public class Test{
    public static void main(String[] args){
        Color c=Color.RED;
       System.out.println(c);
    }
}

 

也可以在类的内部定义枚举:

public class Test{
    enum Color{
        RED, GREEN, BLUE;
    }

    public static void main(String[] args){
        Color c=Color.BLUE;
        System.out.println(c);
    }
}

 

每个枚举都以内部类的形式实现,且所有的枚举值都是public static final的,所以以上的枚举转换为内部类的形式为:

class Color{

    public static final Color RED=new Color();

    public static final Color GREEN=new Color();

    public static final Color BLUE=new Color();

}

 

迭代枚举元素

可以使用for循环来遍历枚举元素

enum Color
{
    RED, GREEN, BLUE;
}
public class Test { public static void main(String[] args) { for (Color c : Color.values()) { System.out.println(c); } } }

 

枚举类与switch语句结合

enum Color
{
    RED, GREEN, BLUE;
}
public class Test { public static void main(String[] args) { Color c = Color.BLUE; switch(c) { case RED: System.out.println("红色"); break; case GREEN: System.out.println("绿色"); break; case BLUE: System.out.println("蓝色"); break; } } }

 

枚举类的常用方法

使用enum关键字定义的枚举默认继承 java.lang.Enum 类并实现 java.lang.Serializable 和j ava.lang.Comparable 接口;

 

枚举的常用方法:

          返回枚举类中所有的值;

 

          找到每个枚举常量的索引;

 

          返回指定字符串的枚举常量;

 

枚举类成员

枚举类也可以拥有变量、方法包括构造方法,但构造方法只能使用private访问修饰符修饰,因此外部类无法调用;

枚举类的方法既可以是具体方法,也可以是抽象方法,若枚举类具有抽象方法,则枚举类的每个对象都需要对其进行实现;

enum Color{
    RED{
        public String getColor(){//枚举对象实现抽象方法
            return "红色";
        }
    },
    GREEN{
        public String getColor(){//枚举对象实现抽象方法
            return "绿色";
        }
    },
    BLUE{
        public String getColor(){//枚举对象实现抽象方法
            return "蓝色";
        }
    };
public abstract String getColor();//定义抽象方法 } public class Test{ public static void main(String[] args) { for (Color c:Color.values()){ System.out.print(c.getColor() + " "); } } }

 

标签:BLUE,Java,String,Color,笔记,枚举,static,public
来源: https://www.cnblogs.com/cloudyzcy/p/16345482.html