zoukankan      html  css  js  c++  java
  • Java 枚举

    枚举

    关键字:enum,与class,interface是一个级别,本质上就是一个类,只是能控制这个类的实例数量(故而属性无参有参构造都用private,这样避免外部去实例化对象造成实例数量不固定)

    创建枚举实例-调用无参构造

    //红绿蓝枚举,只有三个实例,默认调用无参构造,三个实例也就调用三次无参构造
    public enum ColorEnum {
        RED,GREEN,BLUE
    }

    创建枚举实例-调用有参构造

           1. 枚举可以有实例化属性,无参/有参构造方法,抽象方法。(注意看代码中的注释)

    package com.hudong.enumtest;
    import java.lang.Enum;
    
    public enum ColorEnum {
        //RED,GREEN,BLUE调用有参构造,YELLOW调用无参构造
        //有属性方法时,记得在枚举实例序列的最后一个添加分号,代表枚举实例结束
        RED("00","红色"),GREEN("01","绿色"),BLUE("02","蓝色"),YELLOW;
        private String code;
        private String name;
        private ColorEnum(){
            System.out.println("默认调用无参构造");
        }
        private ColorEnum(String code, String name) {
            this.code = code;
            this.name = name;
        }
        public static String getName(String code) {
            //枚举在编译的时候才会插入一些方法,比如values()方法
            for(ColorEnum color:ColorEnum.values()) {
                if(color.getCode().equals(code)) {
                    return color.name;
                }
            }
            return null;
        }
        public String getCode() {
            return code;
        }
        public void setCode(String code) {
            this.code = code;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        
        
        
    }

             2.有抽象方法的有参调用枚举

    package com.hudong.enumtest;
    import java.lang.Enum;
    
    public enum ColorEnum2 {
    	//RED,GREEN,BLUE调用有参构造,YELLOW调用无参构造
    	//有属性方法时,记得在枚举实例序列的最后一个添加分号,代表枚举实例结束
    	RED("00","红色"){
    		@Override
    		public  void getInfo() {
    			
    		}
    	},GREEN("01","绿色"){
    		@Override
    		public  void getInfo() {
    			
    		}
    	},BLUE("02","蓝色"){
    		@Override
    		public  void getInfo() {
    			
    		}
    	},YELLOW{
    		@Override
    		public  void getInfo() {
    			
    		}
    	};
    	private String code;
    	private String name;
    	private ColorEnum2(){
    		System.out.println("默认调用无参构造");
    	}
    	private ColorEnum2(String code, String name) {
    		this.code = code;
    		this.name = name;
    	}
    	//抽象方法
    	public abstract void getInfo();
    	
    	public String getCode() {
    		return code;
    	}
    	public void setCode(String code) {
    		this.code = code;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    	
    	
    }
    

      

  • 相关阅读:
    HAOI2018 简要题解
    HAOI2017 简要题解
    BZOJ 5477: 星际穿越
    HAOI2016 简要题解
    C#oracle还原imp实例
    oracle备份imp命令大全
    C#oracle备份和还原
    win10安装CAD后出现致命错误
    Oracle 恢复数据后,数据库中中文变成问号解决方法
    CAD 安装时出现.net frameword 3.5安装不上的问题
  • 原文地址:https://www.cnblogs.com/xiaohu666/p/15456321.html
Copyright © 2011-2022 走看看