Loading

枚举

常量也不仅仅局限于int型,诸如char和String等也是不在少数。然而,无论使用什么样的类型,这样做都有很多的坏处。这些常量通常都是连续、有无穷多个值的量,而类似这种表示类别的量则是离散的,并且通常情况下只有有限个值。
用连续的量去表示离散量(1)代码可读性差、易用性低。(2)类型不安全。在用户去调用的时候,必须保证类型完全一致,同时取值范围也要正确。(3)耦合性高,扩展性差。

因为在Java中一个枚举就是一个类,它也可以有属性和方法,并且实现接口。只是所有的枚举都继承自java.lang.Enum类,因此enum不可以再继承其他的类。

没有使用美枚举前,用传统方法创建常量并引用

创建常量的类:
public class DirectionDemo {

    //有参无参构造
    public String D;

    public DirectionDemo() {
        super();
    }

    public DirectionDemo(String D) {
        this.D = D;
    }
    //提供显示类
    public void show() {
    }

    public String getname() {
        return D;
    }


    //子实现类,常量
    public static final DirectionDemo UP = new DirectionDemo("上") {
        public void show() {
                System.out.println("上");
        }
    };
    public static final DirectionDemo DOWN = new DirectionDemo("下") {
        public void show() {
            System.out.println("下");
        }
    };
    public static final DirectionDemo LEFT = new DirectionDemo("左") {
        public void show() {
            System.out.println("左");
        }
    };
    public static final DirectionDemo RIGHT = new DirectionDemo("右") {
        public void show() {
            System.out.println("右");
        }
    };

}

测试类:
public class DierctionTest {

    public static void main(String[] args) {

        //创建常量,显示
        DirectionDemo d1 = DirectionDemo.UP;
        String direction1 = d1.getname();
        System.out.println(direction1);

        DirectionDemo d2 = DirectionDemo.LEFT;
        String direction2 = d2.getname();
        System.out.println(direction2);

    }

}

输出:
上
左
枚举类:
public enum Direction {

    //创建实例,有参构造的
    UP("上"),DOWN("下"),LEFT("左"),RIGHT("右");

    public String name;

    Direction( String name){
        this.name = name;
    }
    public String getname(){
        return name;
    }
}

测试类:
public class Demo {

public static void main(String[] args) {

    Direction up = Direction.UP;
    System.out.println(up);
    System.out.println(up.getname());

}
}

输出:
UP
上
posted @ 2017-12-29 10:37  AomanHao  阅读(7)  评论(0)    收藏  举报