Java基础-枚举的含义


/**
 * 一、枚举类的使用
 * 1.枚举类的理解:类的多选只有有限个,确定的,我们称之此类为枚举类。
 * 2.当需要定义一组常量是,强烈建议使用枚举类。
 * 3.如果枚举类中只有一个对象,则可以作为单例模式的实现方式。
 * 
 * 二、如何定义枚举类
 * 方式一:jdk5.0之前,自定义枚举类
 * 方式二:jdk5.0之后,使用enum关键字定义枚举类
 * 
 * 三、Enum枚举类的常用方法
 * 1. toString():返回枚举类实例的实例名
 * 2. values():返回枚举类所有实例对象数组
 * 3. valueOf(String objName):传入枚举类的实例名,返回实例,若传入的实例名不存在,则抛异常 
 * 
 * 四、使用enum关键字定义的枚举实现接口的情况
 * 1.实现接口,在enum类中实现抽象方法
 * 2.让枚举类的对象分别实现接口中的抽象方法
 * 
 * @ClassName EnumDemo
 * @author tfu
 * @date 2021年3月18日 上午11:02:28
 */
public class EnumDemo {
	public static void main(String[] args) {
		Employee huawei = Employee.EMP_HW;
		System.out.println(huawei.toString());
		
		EmployeeEnum enum1 = EmployeeEnum.EMP_ZT;
		
		//Enum类常用方法:
		//1.toString(),打印对象名称
		System.out.println(enum1.toString());
		
		//2. values(),返回对象数组
		EmployeeEnum[] enums = EmployeeEnum.values();
		for (EmployeeEnum employeeEnum : enums) {
			System.out.println(employeeEnum);
		}
		
		//3. valueOf(String objName) 返回枚举类中对象名是objName的对象
		EmployeeEnum empbb = EmployeeEnum.valueOf("EMP_BB");
		System.out.println(empbb);
	}
}


//自定义枚举类
class Employee{
	
	//1、声明Employee对象属性:使用private final 修饰;
	private final String empID;
	private final String empName;
	
	//2、私有化构造函器,并给对象属性赋值
	private Employee(String empName,String empID) {
		this.empID = empID;
		this.empName = empName;
	}
	
	//3、提供当前枚举类的多个对象 使用public static final 进行修饰
	public static final Employee EMP_HW = new Employee("黑屋", "0000000002");
	public static final Employee EMP_ZT = new Employee("昨天", "0000000001");
	public static final Employee EMP_BB = new Employee("波波", "0000000001");
	public static final Employee EMP_AR = new Employee("黯然", "0000000001");

	
	
	public String getEmpID() {
		return empID;
	}



	public String getEmpName() {
		return empName;
	}



	@Override
	public String toString() {
		return "{\"empID\":\"" + empID + "\", \"empName\":\"" + empName + "\"}";
	}
	
	
}

//使用Enum定义枚举类
@SuppressWarnings("all")
enum EmployeeEnum implements EnumInterFaceDemo {
	
	//默认使用public static final 进行修饰
	//2.枚举类中的所有对象实现接口中的抽象方法
	EMP_HW("黑屋", "0000000002"){
		@Override
		public void show() {
		}
	},
	EMP_ZT("昨天", "0000000001"){
		@Override
		public void show() {
		}
	},
	EMP_BB("波波", "0000000001"){
		@Override
		public void show() {
		}
	},
	EMP_AR("黯然", "0000000001"){
		@Override
		public void show() {
		}
	};
	
	//1、声明Employee对象属性:使用private final 修饰;
	private final String empID;
	private final String empName;
	
	//2、私有化构造函器,并给对象属性赋值
	private EmployeeEnum(String empName,String empID) {
		this.empID = empID;
		this.empName = empName;
	}

	//1. enum类直接实现接口中的抽象方法
	@Override
	public void show() {
		// TODO Auto-generated method stub
		
	}
	
}

interface EnumInterFaceDemo{
	void show();
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值