JAVA_SE 枚举类
程序员文章站
2023-11-03 12:35:40
jdk5 enum关键字创建枚举类 1. new 枚举类时,需要进行简写 2. 枚举类可以直接继承接口,与java 正常类一样。并且可以对单独的枚举类重写方法。 3. 主要方法 values()方法:返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值。valueOf(String str): ......
public class testseason {
public static void main(string[] args) {
season spring = season.spring;
system.out.println(spring);
spring.show();
system.out.println(spring.getseasonname());
}
}
//枚举类
class season{
//1.提供类的属性,声明为private final
private final string seasonname;
private final string seasondesc;
//2.声明为final的属性,在构造器中初始化。
private season(string seasonname,string seasondesc){
this.seasonname = seasonname;
this.seasondesc = seasondesc;
}
//3.通过公共的方法来调用属性
public string getseasonname() {
return seasonname;
}
public string getseasondesc() {
return seasondesc;
}
//4.创建枚举类的对象:将类的对象声明public static final
public static final season spring = new season("spring", "春暖花开");
public static final season summer = new season("summer", "夏日炎炎");
public static final season autumn = new season("autumn", "秋高气爽");
public static final season winter = new season("winter", "白雪皑皑");
@override
public string tostring() {
return "season [seasonname=" + seasonname + ", seasondesc="
+ seasondesc + "]";
}
public void show(){
system.out.println("这是一个季节");
}
}
jdk5 enum关键字创建枚举类
/*
* 一、枚举类
* 1.如何自定义枚举类
* 2.如何使用enum关键字定义枚举类
* >常用的方法:values() valueof(string name)
* >如何让枚举类实现接口:可以让不同的枚举类的对象调用被重写的抽象方法,执行的效果不同。(相当于让每个对象重写抽象方法)
*/
public class testseason1 {
public static void main(string[] args) {
season1 spring = season1.spring;
system.out.println(spring);
spring.show();
system.out.println(spring.getseasonname());
system.out.println();
//1.values()
season1[] seasons = season1.values();
for(int i = 0;i < seasons.length;i++){
system.out.println(seasons[i]);
}
//2.valueof(string name):要求传入的形参name是枚举类对象的名字。
//否则,报java.lang.illegalargumentexception异常
string str = "winter";
season1 sea = season1.valueof(str);
system.out.println(sea);
system.out.println();
thread.state[] states = thread.state.values();
for(int i = 0;i < states.length;i++){
system.out.println(states[i]);
}
sea.show();
}
}
interface info{
void show();
}
//枚举类
enum season1 implements info{
spring("spring", "春暖花开"){
public void show(){
system.out.println("春天在哪里?");
}
},
summer("summer", "夏日炎炎"){
public void show(){
system.out.println("生如夏花");
}
},
autumn("autumn", "秋高气爽"){
public void show(){
system.out.println("秋天是用来分手的季节");
}
},
winter("winter", "白雪皑皑"){
public void show(){
system.out.println("冬天里的一把火");
}
};
private final string seasonname;
private final string seasondesc;
private season1(string seasonname,string seasondesc){
this.seasonname = seasonname;
this.seasondesc = seasondesc;
}
public string getseasonname() {
return seasonname;
}
public string getseasondesc() {
return seasondesc;
}
@override
public string tostring() {
return "season [seasonname=" + seasonname + ", seasondesc="
+ seasondesc + "]";
}
// public void show(){
// system.out.println("这是一个季节");
// }
}
1. new 枚举类时,需要进行简写
2. 枚举类可以直接继承接口,与java 正常类一样。并且可以对单独的枚举类重写方法。
3. 主要方法
values()方法:返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值。
valueof(string str):可以把一个字符串转为对应的枚举类对象。要求字符串必须是枚举类对象的“名字”。如不是,会有运行时异常。
int |
ordinal() 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。 |