zoukankan      html  css  js  c++  java
  • java枚举类型

    public enum Color{
      RED,BLUE,BLACK,YELLOWGREEN
    }
      1.enum很像特殊的class,实际上enum声明定义的类型就是一个类
      2.这些类都是类库中Enum类的子类(java.lang.Enum<E>),它们继承了Enum中许多有用的方法
    ~ 枚举值都是public static final的,也就是常量,因此枚举类中的枚举值都应全部大写
    ~ 枚举类型是class,在枚举类型中有构造器,方法和字段.
    ~ 但枚举的构造器有很大的不同:
      1.构造器只能在构造枚举值的时候被调用
      2.构造器私有private,不允许有public构造器
    ~ 枚举可以在switch语句中使用

    public class EnumDemo {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		System.out.println(Color.BLUE);
    		Color[] colors = Color.values();
    		for(Color c:colors) {//另一种for循环格式:从枚举类型对象colors中依次赋给c
    			System.out.println(c);
    		}
    		
    		Person[] person = Person.values();
    		for(Person p:person) {
    			System.out.println(p);
    		}
    		
    		//***********switch用法****************
    		Person a = Person.p3;
    		switch(a){
    			case p1:
    				System.out.println(Person.p1);
    				break;
    			case p2:
    				System.out.println(Person.p2);
    				break;
    			case p3:
    				System.out.println(Person.p3);
    				break;
    				
    		}
    	}
    
    }
    //当jvm去加载使用枚举类的时候,会预先创建多个枚举类型的对象供外界调用
    //public static final Color RED = new Color();
    //public static final Color BLUE = new Color();
    //public static final Color YELLOW = new Color();
    enum Color{
    	REA,BLUE,YELLOW;//枚举类型的值必须作为第一条语句出现
    	private Color(){//构造方法
    		System.out.println("构造方法");//有几个枚举值调用几次
    	}
    }
    
    //public static final Person p1 = new Person("张三",26);
    //public static final Person p2 = new Person("李四",23);
    //public static final Person p3 = new Person("王五",22);
    enum Person{
    	p1("张三",26),p2("李四",23),p3("王五",22);
    	private String name;
    	private int age;
    	private Person(String name,int age) {
    		this.name = name;
    		this.age = age;
    	} 
    	public String toString() {
    		return name+age;
    	}
    }
    

      

  • 相关阅读:
    D365: 笔记(VS无法打开表浏览器)
    D365: 笔记(跟踪调试批处理代码)
    D365: 笔记(非批处理执行class中弹出交互式窗体或报表)
    D365: 笔记(现有量增加批号表字段查询条件)
    D365: 新功能(二)采购发票自动化流程
    D365: 新功能(一)按日期设置编号规则
    ES6 入门教程(未完)
    深入理解TypeScript(未完)
    项目
    vue + threejs 项目踩坑总结
  • 原文地址:https://www.cnblogs.com/liubing2018/p/8467311.html
Copyright © 2011-2022 走看看