JavaSE基础--枚举类型

枚举(enumeration)

        由于有些类的对象是固定的,比如季节类只有四个对象,人类有男人和女人两个对象,,对于这些类,要体现提的对象是固定值就需要用到“枚举类型”

四季类有四个对象

		Season spring = new Season("春天", "温暖");
		Season summer = new Season("夏天","炎热的" );
		Season autumn = new Season("秋天", "凉爽");
		Season winter = new Season("冬天", "寒冷");

         枚举是一组常量的集合,枚举可以理解为一组特殊的类,里面只包含特定的对象 。

实现枚举

(1)自定义

        1.将构造器私有化,防止外部new一个新的对象

	private Season(String name,String desc) {
		this.name=name;
		this.desc = desc;
	}

                2.set方法不对外公开

                3.在类的内部直接创建固定的对象

	public static Season spring = new Season("春天", "温暖");
	public static Season summer = new Season("夏天","炎热的" );
	public static Season autumn = new Season("秋天", "凉爽");
	public static Season winter = new Season("冬天", "寒冷");

                4.枚举对象的名字通常大写

(2)使用enum关键字

        1.使用enum关键字修饰类替代class

public enum Season {

}

        2.常量对象写在类的最前面,多个对象之间用逗号隔开

public enum Season {
	SPRING ("春天","温暖"),SUNMER("夏天","炎热的"),AUTEMN("秋天", "凉爽"),WINTER("冬天", "寒冷");
	private String name;
	private String desc;

以上是两种创建枚举类的两种方法。

在使用enum关键字创建对象的时候默认继承Enum类,所以就可以使用Enum类的默认成员方法

1.成员方法name 

        name方法可以获取当前枚举常量的名称

	public static void main(String[] args) {
		Season spring = Season.SPRING;
		System.out.println(spring.name()); 
	}

2.成员方法ordinal

        ordinal方法可以返回当前对象的位置号(从0 开始)

public static void main(String[] args) {
		Season spring = Season.SPRING;
		System.out.println(spring.ordinal());
	}

 

 

3.成员方法 values

        values方法返回当前枚举中的所有常量,返回一个数组

public static void main(String[] args) {
		Season spring = Season.SPRING;
		Season[] values = Season.values();
		for(Season season:values) {
			System.out.println(season);
		}
	}

 4.成员函数valueOf

        valueOf函数能够将字符串转换成枚举对象,但是字符串必须是已有的常量名


	public static void main(String[] args) {
		Season springsS = Season.valueOf("SPRING");
		System.out.println("Springs");
	}

 5.成员函数compareTo

        compareTo函数能够比较两个枚举常量的位置号

	System.out.println(Season.AUTEMN.compareTo(Season.SPRING));

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值