您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
【第14章:枚举】_枚举的作用
发布时间:2021-01-05 15:58:09编辑:雪饮阅读()
传统枚举实现
class Color{
public static final Color RED = new Color("红色") ; // 定义第一个对象
public static final Color GREEN = new Color("绿色") ; // 定义第一个对象
public static final Color BLUE = new Color("蓝色") ; // 定义第一个对象
private String name ;
private Color(String name){
this.name = name ;
}
public void setName(String name){
this.name = name ;
}
public String getName(){
return this.name ;
}
public static Color getInstance(int i){
switch(i){
case 1:{
return RED ;
}
case 2:{
return GREEN ;
}
case 3:{
return BLUE ;
}default:{
return null ;
}
}
}
};
public class Hello{
public static void main(String args[]){
Color c1 = Color.RED ; // 取得红色
System.out.println(c1.getName()) ; // 输出名字
Color c2 = Color.getInstance(3) ; // 根据编号取得名字
System.out.println(c2.getName()) ;
}
};
接口实现枚举
interface Color{
public static final int RED = 1 ; // 定义红色
public static final int GREEN = 2 ; // 定义绿色
public static final int BLUE = 3 ; // 定义蓝色
}
public class Hello{
public static void main(String args[]){
System.out.println(Color.RED + Color.GREEN) ; // 颜色相加
}
};
D:\>javac Hello.java
D:\>java Hello
3
虽然还是不够明显,但是你知道了接口就算不用实现也可以像普通类一样的静态属性访问可以直接用“类名.属性名”
用enum关键字实现枚举
enum Color{
RED,GREEN,BLUE ; // 定义三个枚举的类型
};
public class Hello{
public static void main(String args[]){
Color c = Color.BLUE ; // 取出蓝色
System.out.println(c) ;
}
};
D:\>javac Hello.java
D:\>java Hello
BLUE
实现方式虽然有点奇怪,但是语法更简洁
enum的遍历
enum Color{
RED,GREEN,BLUE ; // 定义三个枚举的类型
};
public class Hello{
public static void main(String args[]){
for(Color c:Color.values()){
System.out.println(c);
}
}
};
D:\>javac Hello.java
D:\>java Hello
RED
GREEN
BLUE
enum枚举类型可以直接用在switch上
enum Color{RED,GREEN,BLUE;};
public class Hello{
public static void main(String args[]){
for(Color c:Color.values()){
print(c);
}
}
public static void print(Color color){
switch(color){
case RED:{
System.out.println("红颜色");
break;
}
case GREEN:{
System.out.println("绿色");
break;
}
case BLUE:{
System.out.println("蓝色");
break;
}
default:{
System.out.println("未知颜色") ;
break ;
}
}
}
};
D:\>javac Hello.java
D:\>java Hello
红颜色
绿色
蓝色
不过switch这语法一般用的还是少
关键字词:java,枚举