美文网首页
java-Enum枚举

java-Enum枚举

作者: MrWu_ | 来源:发表于2018-03-02 15:41 被阅读8次

1、用enum代替int常量
枚举类型是指一组固定的常量组成合法值的类型。

怎么定义?

public enum Apple{FUJI,PIPPIN,GRANNY_SMITH}
public enum Orange{NAVEL,TEMPLE,BLOOD}

它们就是通过公有的静态final域为每个枚举常量导出实例的类。
使用构造器描述枚举类型

public enum Planet{
      MERCURY(3,5),
      MARS(4,6),
      EARTH(5,7);
      private final double mass;
      private final double radius;
      private final double surface;
      Planet(double mass,double radius){
              this.mass=mass;
              this.radius=radius;
              surface=G*mass/(radius*radius);
      }
}
public class Test{
      public static void main(String arg0){
              for(Planet:Planet.values()){
                    System.out.println(p);//返回MERCURY  ,MARS ,EARTH
            }
      }
}

注意Planet就像所有的枚举一样,它有一个静态的values方法,按照声明顺序返回它的值数组。

  • values()
    静态方法,返回一个包含全部枚举值的数组
Colors[] colors=Colors.values();
for(Color c:colors){
          System.out.println(c+",");
 }
  • toString()返回枚举常量的名称
Colors c=Color.RED;
System.out.println(c);//返回结果:RED

Switch

enum Signal{
      GREEN,YELLOW,RED
}
public class TrassicLight{
      Signal color=Signal.RED;
      public void change(){
                switch(color){
                      case RED:
                          color=Signal.GREEN;
                          break;
                      case YELLOW:
                          color=Signal.RED;
                          break;
                      case GREEN:
                          color=Signal.YELLOW;
                          break;
              }
      }
}

向枚举中添加新方法
如果打算自定义自己的方法,那么必须在enum实例系列中的最后添加一个分号。

public enum Color{
        RED("红色",1),GREEN("绿色",2),BLANK("白色",3),YELLOW("黄色",4);
        //成员变量
        private String name;
        private int index;
       //构造方法
      private Color(String name,int index){
            this.name=name;
            this.index=index;  
      }
      //普通方法
      pubilc static String getName(int index){
                for(Color c:Color.values()){
                          if(c.getIndex()==index){
                                  return c.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;
       }
}

覆盖枚举方法

public class Test{
        public enum Color{
                RED("红色",1),GREEN("绿色",2),BLANK("白色",3),YELLO("黄色",4);
                //成员方法
                private String name;
                private int index;
                
                //构造方法
                private Color(String name,int index){
                          this.name=name;
                          this.index=index;
                }
                @Override
                public String toString(){
                        return this.index+"_"+this.name;
                }
         }
         public static void main(String[] args){
                  System.out.println(Color.RED.toString());  
        }
 }

实现接口

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

使用接口组织枚举

public interface Food{
     enum Coffee implements Food{
             BLANK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO
     }
    enum Dessert implements Food{
             FRUIT,CAKE,CELATO
     }
}

相关文章

  • java-Enum枚举

    1、用enum代替int常量枚举类型是指一组固定的常量组成合法值的类型。 怎么定义? 它们就是通过公有的静态fin...

  • C#枚举及与枚举常数的转换

    1、枚举的定义 2、枚举绑定到comboBox 3、枚举常数转换为枚举string转枚举 数字值转枚举

  • Swift 基础笔记 - 枚举

    枚举 OC定义和使用枚举 Swift定义枚举类型 Swift判断枚举类型 枚举成员类型

  • 枚举类

    1.枚举类型的定义: 枚举类型定义的一般形式为 enum 枚举名{//枚举值表枚举值1;枚举值2;...} 在枚举...

  • 10、枚举与闭包

    枚举 枚举和普通类相比有什么优势 枚举类型、枚举名称与枚举值 枚举的比较运算 两个枚举之间可以使用等值比较(==)...

  • Swift与OC的语法简单对比(常用语法二)

    20- 枚举,枚举原始值,枚举相关值,switch提取枚举关联值 Swift枚举: Swift中的枚举比OC中的枚...

  • Swift 2 学习笔记 10.枚举

    课程来自慕课网liuyubobobo老师 枚举 枚举基础 枚举之原始值 枚举之关联值 枚举递归

  • swift3语法(八)

    枚举/结构体 枚举 定义形式enum 枚举名 { 枚举值} // 例如enum CompassPoint {...

  • C语言基础 之 枚举类型

    枚举类型 枚举类型: 列出所有可能的值 枚举类型的定义 枚举类型定义的一般格式:enum 枚举类型名 {枚举值表}...

  • 枚举

    枚举 Why:为什么需要枚举 What:枚举是什么; How:枚举怎么实现 When:枚举什么时候使用 Where...

网友评论

      本文标题:java-Enum枚举

      本文链接:https://www.haomeiwen.com/subject/ycsltxtx.html