• 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;
    	}
    	
    	
    	
    }
    

      

  • 相关阅读:
    jQuery中Ajax事件beforesend及各参数含义 转
    如何组织好js代码 转
    C# 几种HtmlEncode的区别
    [转]建议Font-Size使用em单位控制大小
    JavaScript charAt() 方法
    Js中 关于top、clientTop、scrollTop、offsetTop的用法
    jquery mobile 的4个初始化事件
    JS操作JSON总结
    .html(),.text()和.val()的使用
    netstat 显示当前网络连接的统计信息
  • 原文地址:https://www.cnblogs.com/xiaohu666/p/15456321.html
Copyright © 2020-2023  润新知