为了账号安全,请及时绑定邮箱和手机立即绑定

JAVASE之JAVA枚举篇

标签:
Java 面试


一  概述

JDK5.0之前需要自定义枚举类,而JDK5.0新增的enum关键字用于定于枚举类,若枚举只有一个成员,则可以作为一种单例模式的实现方式

枚举类对象的属性不应允许被改动,所以应该使用private final修饰,应该在构造器为其赋值,若枚举类显式的定义了带参数的个构造器,则在列出枚举类时,也必须对应的传入参数。

二  Enum枚举类

必须在枚举类的第一行声明枚举类对象。

枚举类和普通类的区别:

   1.使用enum定义的枚举类默认继承了java.lang.Enum类

   2.枚举类的构造器只能使用private访问控制符

   3.枚举类的所有实例必须在枚举类中显式列出(,分隔;结尾),列出的实例系统会自动添加 public static final 修饰

JDK5.0中可以在switch表达式中使用Enum定义的枚举类的对象作为表达式,case子句可以直接使用枚举值的名字,无需添加枚举类作为限定。

三  测试

SeasonEnum.java

package com.lxj.Enum;

public enum SeasonEnum {
     
	SPRING("春天","3-5月"),
	SUMMER("夏天","3-5月"),
	ANTUMN("秋天","3-5月"),
	WINTER("冬天","3-5月");
	
	private final String seasonName;
	private final String seasonTime;
	
	private  SeasonEnum(String seasonName,String seasonTime) {
		this.seasonName = seasonName;
		this.seasonTime = seasonTime;
	}

	public String getSeasonName() {
		return seasonName;
	}

	public String getSeasonTime() {
		return seasonTime;
	}
	  
}

TestEnum.java

package com.lxj.Enum;

public class TestEnum {
    public static void main(String[] args) {
		SeasonEnum spring = SeasonEnum.SPRING;
		System.out.println(spring.getSeasonName());
		System.out.println(spring.getSeasonTime());
		
		System.out.print(SeasonEnum.SPRING.name() + "  ");
		System.out.println(SeasonEnum.SPRING.ordinal());
		
		System.out.print(SeasonEnum.SUMMER.name()+ "  ");
		System.out.println(SeasonEnum.SUMMER.ordinal());
		
		System.out.print(SeasonEnum.ANTUMN.name()+ "  ");
		System.out.println(SeasonEnum.ANTUMN.ordinal());
		
		System.out.print(SeasonEnum.WINTER.name()+ "  ");
		System.out.println(SeasonEnum.WINTER.ordinal());
		
		System.out.println("遍历");
		SeasonEnum[] seasonEnums = SeasonEnum.values();
		for (SeasonEnum seasonEnum : seasonEnums) {
			System.out.println(seasonEnum);
		}
		SeasonEnum enum1 = SeasonEnum.valueOf("SPRING");
		System.out.println(enum1);
		
	}
}

运行结果:

春天
3-5月
SPRING  0
SUMMER  1
ANTUMN  2
WINTER  3
遍历
SPRING
SUMMER
ANTUMN
WINTER
SPRING

测试方法:

	SPRING("春天","3-5月"){
		public void show() {
			System.out.println("春天```````````````````````````");
		}
	},
	SUMMER("夏天","3-5月"){
		public void show() {
			System.out.println("夏天```````````````````````````");
		}
	},
	ANTUMN("秋天","3-5月"){
		public void show() {
			System.out.println("秋天```````````````````````````");
		}
	},
	WINTER("冬天","3-5月"){
		public void show() {
			System.out.println("冬天```````````````````````````");
		}
	};
	public void show() {
		
	}

		SeasonEnum.SPRING.show();
		SeasonEnum.SUMMER.show();
		SeasonEnum.ANTUMN.show();
		SeasonEnum.WINTER.show();

运行结果:
春天```````````````````````````
夏天```````````````````````````
秋天```````````````````````````
冬天```````````````````````````



点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
7795
获赞与收藏
665

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消