JAVA使用魔法数字
JAVA使用魔法数字
说明:所谓魔法数值,是指在代码中直接出现的数值,只有在这个数值记述的那部分代码中才能明确了解其含义。
魔法数值使代码的可读性大大下降。而且,如果同样的数值多次出现时,到底这些数值是不是带有同样的含义呢,谁也说不清楚。另一方面,如果本来应该使用相同数值的地方,一旦用错了,也很难发现。因此,需要注意以下几点,极力避免使用魔法数值。
① 不使用魔法数值,代之以有名字的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使用魔法数字 说明:所谓魔法数值,是指在代码中直接出现的数值,只有在这个数值记述的那部分代码中才能明确了解其含义. 魔法数值使代码的可读性大大下降.而且,如果同样的数值多次出现时,到底这 ...
- java 魔法数_魔法数字与常量定义
优化前代码 实例1 动动脑筋:本例代码中有哪些瑕疵,应该如何优化? ☆代码1:Before类 1 package com.itedu365.best1201; 2 public class Bef ...
- 编程领域名词:魔法数值、魔法数字、魔法值
魔法数值.魔法数字.魔法值,这是一个东西,不同的叫法. 魔法数字,在编程领域指的是莫名其妙出现的数字.数字的意义必须通过详细阅读才能推断出来.一般魔法数字都是需要使用枚举变量来替换的. 魔法数字常见于 ...
- JAVA使用魔法数值
所谓魔法数值,是指在代码中直接出现的数值 ,只有在这个数值记述的那部分代码中才能明确了解其含义. 魔法数值使代码的可读性大大下降.而且,如果同样的数值多次出现时,到底这些数值是不是带有同样的含义呢,谁 ...
- [JS]题解 | #魔法数字#
题解 | #魔法数字# 题目链接 魔法数字 题目描述 牛妹给牛牛写了一个数字n,然后又给自己写了一个数字m,她希望牛牛能执行最少的操作将他的数字转化成自己的. 操作共有三种,如下: 在当前数字的基础上 ...
- Java判断一组数字是否是等差数列
Java判断一组数字是否是等差数列 公式: 1.先排序 2.当前数=第一个数+相邻两数的差[公差]*当前位置 eg: 1,3,5 每个数字之间相差2,假如当前数是5,则与前面相差两个2, 因为如果是等 ...
- java 正则表达式 中文数字和字母_Java中过滤出字母、数字和中文的正则表达式 | 学步园...
1.Java中过滤出字母.数字和中文的正则表达式 (1)过滤出字母的正则表达式 [^(A-Za-z)] (2)过滤出数字的正则表达式 [^(0-9)] (3)过滤出中文的正则表达式 [^(\\u4e0 ...
- java国际化——Locale+数字格式
[0]README 1) 本文部分文字描述转自 core java volume 2 , 测试源代码均为原创, 旨在理解 java国际化--Locale+数字格式 的基础知识 : 2) java 编程 ...
- java数组个数无限_基于Java代码实现数字在数组中出现次数超过一半
下文通过几种方法给大家介绍java数组数字出现次数,具体内容如下所示: 方法一: 数组排序,然后中间值肯定是要查找的值. 排序最小的时间复杂度(快速排序)O(NlogN),加上遍历. 方法二: 使用散 ...
最新文章
- springmvc3.2+spring+hibernate4全注解方式整合(一)
- redis学习笔记---redis的哨兵Sentinel
- 博鳌论坛国际粮食安全-林裕豪:从玉农业对话丰收节贸易会
- string 字符串中字符无效_7.3 C++字符串类 | 使用string输出
- boost::make_reverse_graph用法的测试程序
- centos 8 安装使用配置
- Machine Learning Mastery 博客文章翻译:深度学习与 Keras
- 怎样追求心仪的女孩子
- 免费python自学攻略-自学python二三事
- 这可能是最简单易懂的机器学习入门(小白必读)
- 自动驾驶中的三维目标检测综述
- android移植大作游戏,这款steam移植的1GB大作,或许是今年最有氛围的悬疑游戏
- 山地车中轴进水表现_解决山地车令人讨厌的中轴异响及其他异响问题
- 网站不收录的原因和提高网站收录量的方法
- 关于一维数组(小朋友都能明白的一维数组超详细介绍)
- Java IO流详解和常用流的使用
- WPS格式转换成html代码
- 中国智能制造发展趋势!
- MySQL添加索引及添加字段并建立索引
- 手撕面试官的OKhttp连环炮击~