01BIM社区

 找回密码
 立即注册

扫一扫,访问微社区

查看: 3373|回复: 0

为什么使用枚举类型

[复制链接]

5

主题

9

帖子

598

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
598
发表于 2015-10-27 13:13:53 | 显示全部楼层 |阅读模式
1.枚举类型更规范,在函数形参定义为枚举类型的时候,只接受枚举类型的常量。比起普通的更安全
枚举类型成员默认被public static final修饰
class  EnumTest  
{  
    public static void doit(int val){   //可以接受任何参数  
        switch(val){  
            case ConstantsI.Constants_A:  
                System.out.println("ConstantsI.Constants_A");  
                break;  
            case ConstantsI.Constants_B:  
                System.out.println("ConstantsI.Constants_B");  
                break;  
            default:break;  
        }  
    }  
    public static void doit(ConstantsE val){ //只接受枚举类型常量,更安全  
        switch(val){  
            case Constants_A:   //注意这里的写法 不是ConstantsE.Constants_A  
                System.out.println("ConstantsE.Constants_A");  
                break;  
            case Constants_B:  
                System.out.println("ConstantsE.Constants_B");  
                break;  
            default:break;  
        }  
    }  
    public static void main(String[] args)   
    {  
        EnumTest.doit(1);  
        EnumTest.doit(ConstantsE.Constants_A);  
    }  
}  
  
interface ConstantsI  //一般定义  
{  
    public static final int Constants_A = 1;  
    public static final int Constants_B = 2;  
}  
enum ConstantsE{  //枚举  
    Constants_A,  
    Constants_B  
}  


2.枚举类型的构造方法,作用?
class  EnumTest  
{  
  
    public static void main(String[] args){  
        System.out.println(ConstantsE.Constants_A.getDescription());  //输出:我是枚举类型A   
    }  
      
}  
  
enum ConstantsE{  //枚举  
    Constants_A("我是枚举类型A"),  
    Constants_B("我是枚举类型B");  
    private String description;  
      
    private ConstantsE(String _description){  
        this.description = _description;  
    }  
      
    public String getDescription(){  
        return this.description;  
    }  
}  


3.五子棋中的枚举类型棋子的定义
package com.ck.wuziqi;  
  
/**
* 棋子
* @author Administrator
*
*/  
public enum Chessman {  
    /**
     * 黑、白棋子
     */  
    BLACK("●"),WHITE("○");  
    //相当于 publi static final Chessman BLACK = new Chessman("●");  
      
    private String chessman;  
      
      
    private Chessman(String chessman){  
        this.chessman = chessman;  
    }  
      
    public String getChessman(){  
        return this.chessman;  
    }  
}  

使用时,得到黑子的字符串"●"
Chessman.BLACK.getChessman()  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|01BIM社区 - 最专业的BIM技术交流平台 ( 渝ICP备15000873号 )

GMT+8, 2024-4-26 20:41 , Processed in 0.055126 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表