JR 精品文章 - 不建议使用Java Enum
AD: jr (at) javaresearch.org


首页 | 动态 | 文章 | FAQ  | 新闻 | 下载 | 代码 | 工作 | 调查 | 术语 | 站点 | 图书 | 论坛 | 帮助 | 全部  

TOP | 交流 | 软件 | 专栏 | 开源 | 译/著 | 源码 | API  | 推荐 | FTP  | 积分 | 统计 | 搜索 | Blog | 我们  
首页 » 研究文集 » Java入门 搜索标题相关文章 搜索标题相关文章    评论此文章 发表评论     开始监控此文章 开始监控   加入收藏夹  加入收藏夹
不建议使用Java Enum
rocket_74 原创   更新:2007-12-04 13:46:43  版本: 1.0   



1、    目的
简单认为:满足一些需求
2、    定义、使用
public enum SexEnum {
    male(1),female(0);
    
    private final int value;
    
    private SexEnum(int value){
        this.value = value;
    }
    
    public int getValue(){
        return this.value;
    }
}

public class TestSexEnum {
    /*
     * @param args
     */
    public static void main(String[] args) {
        System.out.println(SexEnum.male.getValue());
        for (SexEnum item:SexEnum.values()){
            System.out.println(item.toString()+item.getValue());
        }

    }

}
3、与类/接口相比
=与类相同,不同的地方就是写法不一样(enum比较简单,但是写法比较陌生)
=同样可以添加方法,属性
=enum不能继承类(包括继承enum),只能实现接口,类无此限制(除非用final来限制)。在这个方面,enum更像interface
=enum只支持public和[default] 访问修饰,class支持比较丰富
=可以与下面的类比较一下,定义比较相似
Public class Sex{
    Public static final Sex male = new Sex(1);
    Public static final Sex female = new Sex(0);

    Private Sex(int value){
        This.value = value;
}

Public int getValue(){
    Return this.value;
}
}

=调用比较相似
SexEnum.male.getValue()
Sex.male.getValue()

总结:其实完全能够用class替代enum,个人认为enum是早期面向过程中,简单数值枚举集合的一种表示,在java中对enum进行了扩展,让它只具有类的部分能力,导致结构不清晰,在java中进入enum有画蛇添足的感觉.

更为重要的是,我们在进行设计的时候引入enum非常容易偏离OO思想,进入以数据或者过程为中心的路子


版权声明   给作者写信
本篇文章对您是否有帮助?  投票:         投票结果:     16       5
作者其它文章: 作者全部文章     查看作者的Blog
评论人:fgt___73 发表时间: Fri Dec 07 10:20:44 CST 2007
[:E][:E][:E]
评论人:johnston678 发表时间: Sat Dec 08 14:58:38 CST 2007
支持,我也有这个感觉!有点多余!
评论人:jeff.lau 发表时间: Mon Dec 17 19:35:51 CST 2007
你不觉得enum比类看起来要简单很多。
评论人:z.cen 发表时间: Mon Dec 24 15:52:44 CST 2007
[good][good]
评论人:championcgh 发表时间: Wed Apr 02 11:56:41 CST 2008
[good]
评论人:0505010218 发表时间: Tue Aug 19 13:14:24 CST 2008
非常不同意.
JAVA 里的东西存在总有它的意义吧.enum就想它的名字一样,用来枚举的,要是比class功能还多还简单那不早替代了class了?
至少一点点,用起来你不觉得非常方便吗?仅这一点就有理由存在了.
初学者的思想不至于比java的设计者更能理解java吧?

这个文章共有 6 条评论
主题: 如何才算掌握Java(J2SE篇) 上一篇文章
返回文章列表 返回〔Java入门〕
下一篇文章 主题: 组合还是继承


文字广告链接
        自主、快速定制基于JAVA的B/S业务系统          重量级企业在线自定义WEB报表平台
        Excel制表、零代码发布、打印、图表结合——快逸报表,免费、稳定、功能强大的java工具
        技术圈: 关于Java、dotNet、PHP、Ruby、奇客、Web2.0等更多资讯博客精选文章

关于 JR  |  版权声明  |  联系我们 

©2002-2006 JR 版权所有 沪ICP备05019622号