jdk5.0新特性——枚举类
1.枚举类的含义:
在某些情况下,一个类的对象是有限而固定的(例如:季节类,行星类),这种实例有限而
固定的类,在Java中被称为枚举类
2.枚举类的关键字:enum
实例:public enum Season implements IPrinter {}
3.枚举类和普通类的区别:
a.使用enum定义的枚举类默认继承了java.lang.Enum类
b.枚举类的构造器只能使用private访问控制符
c.枚举类的所有实例必须在枚举类中显示列出(",“分隔,”;"结尾),
列出的事例,系统会自动添加public static final 修饰
d.所有的枚举类都提供了一个values方法,该方法可以很方便地遍历所有的枚举值
4.枚举类的运用:
a.注意:
1)运行环境:jdk1.8.0_131 2)编译工具:Idea 2018 版本
3)所涉及的类和接口:主程序main类(Demo5),枚举类(Season),接口(Iprinter)
b.代码展示:
Demo5主程序main类代码:
public class Demo5 {
public static void main(String[] args) {
Season winter=Season.冬天;
Season spring=Season.春天;
Season summer=Season.夏天;
Season autumn=Season.秋天;
//通过values方法可以遍历所有枚举值
Season[] seasons=Season.values();
for (Object ob :
seasons){
System.out.println(ob);
}
Scanner scanner=new Scanner(System.in);
System.out.println("请输入一个季节:");
String temp=scanner.next();
Season season= Season.valueOf(temp);
season.print();
System.out.println("请选择一个季节编号:");
int no=scanner.nextInt();
Season season1=Season.values()[no];
System.out.println(season1);
}
}
Season枚举类代码:
package com.liujie.demo5;
public enum Season implements Iprinter{
春天{
@Override
public void print() {
System.out.println("这是春天");
}
},夏天{
@Override
public void print() {
System.out.println("这是夏天");
}
},秋天{
@Override
public void print() {
System.out.println("这是秋天");
}
},冬天{
@Override
public void print() {
System.out.println("这是冬天");
}
}
}
Inprinter接口代码:
package com.liujie.demo5;
public interface Iprinter{
void print();
}
控制台console输出结果:
总结:
也许你会觉得你在程序员这条路上走得很艰难很艰难,但你要相信挺过风风雨雨,我们依旧可以拥抱属于我们的彩虹