不积跬步,无以至千里;不积小流,无以成江海。

 

Java语言基础

 

枚举

单例模式中,一个类只有一个实例。而枚举其实就是多例,一个类有多个实例,但实例的个数不是无穷的,是有限个数的。

 

  • 定义枚举类型

使用enum关键字:

例子:

public enum Direction {
    FRONT, BEHIND, LEFT, RIGHT;
}
Direction d = Direction.FRONT;  
注意:
1. 定义枚举类的关键字是enum,而不是Enum,所有关键字都是小写的!
2. 其中FRONT、BEHIND、LEFT、RIGHT都是枚举项,它们都是本类的实例。
3. 在定义枚举项时,多个枚举项之间使用逗号分隔,最后一个枚举项后需要给出分号!
4. 不能使用new来创建枚举类的对象,因为枚举类中的实例就是类中的枚举项,所以在类外只能使用类名.枚举项。
 
  • 构造器,变量,方法

枚举类也可以有构造器,构造器默认都是private修饰,而且只能是private。因为枚举类的实例不能让外界来创建!

public enum Color {  
    RED(1, "红色"), GREEN(2, "绿色"), BLANK(3, "白色"), YELLO(4, "黄色");  
    // 成员变量  
    private int index;  
    private String name;  
    // 构造方法  
    private Color(int index, String name) {  
        this.index = index; 
        this.name = name;       
    }   
    // get set 方法  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public int getIndex() {  
        return index;  
    }  
    public void setIndex(int index) {  
        this.index = index;  
    }  
}

调用:

Color.RED.getName()

  

  • 实现接口

枚举类还可以实现接口

public interface Behaviour {  
    void print();  
    String getInfo();  
}  
public enum Color implements Behaviour{  
    RED(1, "红色"), GREEN(2, "绿色"), BLANK(3, "白色"), YELLO(4, "黄色");  
// 成员变量 private int index;
  private String name;
  // 构造方法 private Color(int index, String name) { this.name = name; this.index = index; }   //接口方法 @Override public String getInfo() { return this.name; } //接口方法 @Override public void print() { System.out.println(this.index+":"+this.name); } }

  

 

博客借鉴:https://www.cnblogs.com/singlecodeworld/p/9887926.html

 
posted on 2021-06-01 20:05  smile学子  阅读(78)  评论(0编辑  收藏  举报