JAVA-枚举

来源:互联网 发布:冒泡排序java从小到大 编辑:程序博客网 时间:2024/06/14 19:48

在java中,枚举是一个类,可以具有构造函数,方法,实例变量。
类似这样:

enum color {    red(10), black(20), yellow(30), blue(40);    //实例变量    private int price;    //构造方法    color(int price) {        this.price = price;        System.out.println(this.name());    }    //重载构造方法    color(){        this.price = -1;    }    //实例方法    public int getPrice() {        return this.price;    }}

java的关键字enum定义的枚举是继承自java.lang.Enum这个抽象类,所以对于color,可以在其中定义抽象方法,而“red”其实是color的内部类,只是我们调用的时候,编译器自动将其实例化返回对象给我们。
所以每个内部类各自拥有color的一份变量。
详解:http://blog.csdn.net/sup_heaven/article/details/35559117
如图:

for (color cc : color.values()) {            System.out.println(cc.name()+" "+cc.getPrice());                                }

这里写图片描述

同时对于color中声明的内部类,当声明一个color的变量时,会为每个内部类调用一次构造函数,如下:

enum color {    red(10), black(20), yellow(30), blue(40);    //实例变量    private int price;    //构造方法    color(int price) {        this.price = price;        System.out.println(this.name());   //打印出枚举类的名称    }    //重载构造方法    color(){        this.price = -1;    }    //实例方法    public int getPrice() {        return this.price;    }    public void setPrice(int price){        this.price = price;    }}mian函数public static void main(String[] args) {        color c = color.black;}

这里写图片描述

最后:
在枚举中声明的枚举变量(内部类)都是默认使用public static final修饰的。

链接:
java枚举类详解

原创粉丝点击