频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

JAVA代码中使用魔法数值

来源: 作者:佚名 出处:巧巧读书 2008-01-03 进入讨论组
  • 关 键 词:
  • java

讨论组http://group.qqread.com

  说明:所谓魔法数值,是指在代码中直接出现的数值,只有在这个数值记述的那部分代码中才能明确了解其含义。

  魔法数值使代码的可读性大大下降。而且,如果同样的数值多次出现时,到底这些数值是不是带有同样的含义呢,谁也说不清楚。另一方面,如果本来应该使用相同数值的地方,一旦用错了,也很难发现。因此,需要注意以下几点,极力避免使用魔法数值。

  ① 不使用魔法数值,代之以有名字的Static final或者enum值

  在Java语言中,对有名字的值的定义,可以使用用Static final或者enum来声明的值

  注意(命名方法):在取名时一定要注意增加名字的信息量。比如,为16命名为SIXTEEN是没有意义的。

  如果16表示的是价格表的一个元素,则应该命名为PRICE_TABLE_MAX.关于命名规则,还要参照本小册子的第6条。

  ② 原则上,数值就是魔法数值

  但是,0,作为数组的最小下标是经常使用的。

  例:for( int i = 0; I < table.leERRORth(); i++ )

  读到这里,读者都会认为这里的0是数组的最小下标,所以在这里不认为0是魔法数值。

  另外,0经常被作为变量初始化的缺省值,这时候一般也不认为0是魔法数值。

  通过使用有名字的值,一方面可以提高代码的可读性,另一方面,也可以把变更的地方局部化,从而提高可维护性。

  例子:

  魔法数字的例子

  int priceTable[] = new int[16]; //ERROR:这个16究竟有何含义呢?

  使用了带名字的数值的例子

  static final int PRICE_TABLE_MAX = 16; //OK:带名字

  int price Table[] = new int [PRICE_TABLE_MAX]; //OK:名字的含义是很清楚的

更多文章 更多内容请看Java环境安装配置Java编程开发手册Java与其他集成开发篇专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章