java学习笔记23——枚举类
2014-01-24 11:32
357 查看
实例有限而且固定的类,叫枚举类。
手动实现枚举类,要注意以下几点:
1、要用private把构造器隐藏起来。
2、把这个类所有可能实例都使用public static final修饰的类变量来保存。
3、可以提供一些静态方法,允许其他程序根据特定参数来获取与之匹配的实例。
enum关键字定义枚举类,在注意其与普通类的以下区别:
1、枚举类可实现一个或多个接口,使用enum定义的枚举类默认继承java.lang.Enum类,而不是普通类继承的Object类。
2、使用enum定义、飞抽象的枚举类默认会使用final修饰,所以枚举类不能派生子类。
3、枚举类的构造器只能用private修饰,可省略。
4、枚举类所有实例必须在枚举类的第一行显示列出,否则永远无法产生实例。系统会自动添加public static final修饰。
例
enum SeasonEnum{
SPRING,SUMMER,FALL,WINTER;
}
Public class EnumTest{
public void judge(SeasonEnum s){
switch(s){
case SPRING:
System.out.println("春暖花开,正好踏青");
case SUMMER:
System.out.println("夏日炎炎,适合游泳");
case FALL:
System.out.println("秋高气爽,进补即时");
case WINTER:
System.out.println("冬日雪飘,围炉赏雪");
}
}
public static void main(String[] args){
for (SeasonEnum s: SeasonEnum.values()){
System.out.println(s);
}
new EnumTest().judge(SeasonEnum.SPRING);
}
}
手动实现枚举类,要注意以下几点:
1、要用private把构造器隐藏起来。
2、把这个类所有可能实例都使用public static final修饰的类变量来保存。
3、可以提供一些静态方法,允许其他程序根据特定参数来获取与之匹配的实例。
enum关键字定义枚举类,在注意其与普通类的以下区别:
1、枚举类可实现一个或多个接口,使用enum定义的枚举类默认继承java.lang.Enum类,而不是普通类继承的Object类。
2、使用enum定义、飞抽象的枚举类默认会使用final修饰,所以枚举类不能派生子类。
3、枚举类的构造器只能用private修饰,可省略。
4、枚举类所有实例必须在枚举类的第一行显示列出,否则永远无法产生实例。系统会自动添加public static final修饰。
例
enum SeasonEnum{
SPRING,SUMMER,FALL,WINTER;
}
Public class EnumTest{
public void judge(SeasonEnum s){
switch(s){
case SPRING:
System.out.println("春暖花开,正好踏青");
case SUMMER:
System.out.println("夏日炎炎,适合游泳");
case FALL:
System.out.println("秋高气爽,进补即时");
case WINTER:
System.out.println("冬日雪飘,围炉赏雪");
}
}
public static void main(String[] args){
for (SeasonEnum s: SeasonEnum.values()){
System.out.println(s);
}
new EnumTest().judge(SeasonEnum.SPRING);
}
}
相关文章推荐
- leetcode Length of Last Word 1.4 难度系数1
- JAVA获取文件的创建日期
- leetcode Remove Element 1.3 难度系数1
- Cookie报错java.lang.IllegalArgumentException
- Struts2标签: 三种给<s:a>,<a>标签传值的方式
- leetcode Remove Duplicates from Sorted Array II 2.18 难度系数2
- java 冒泡排序
- 谈谈java线程锁synchronized关键字和volatile关键字
- Maven Spring3.2.3.RELEASE ActiveMq5.9 Caused by: java.lang.NoSuchFieldError: NULL
- The Rox Java NIO Tutorial
- 抛弃Eclipse!
- Spring jdbc很好的一个框架
- Eclipse 用maven构建web项目
- Java堆、栈和常量池
- 避免NullPointerException之Java高效代码
- java动态代理(JDK和cglib)
- myeclipse导出UML图片
- iReport找不到JDK解决方法
- Java初始化顺序
- SSH (Struts2+Spring3.0+Hibernate3)框架(二) 框架的配置