知识大全 “类”常数分组

Posted 常数

篇首语:什么是知识?它不是别的,是记录下来的经验。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 “类”常数分组相关的知识,希望对你有一定的参考价值。

  由于置入一个接口的所有字段都自动具有static和final属性 所以接口是对常数值进行分组的一个好工具 它具有与C或C++的enum非常相似的效果 如下例所示     //: Months java  // Using interfaces to create groups of constants  package c ;    public interface Months    int    JANUARY = FEBRUARY = MARCH =     APRIL = MAY = JUNE = JULY =     AUGUST = SEPTEMBER = OCTOBER =     NOVEMBER = DECEMBER = ;   ///:~    注意根据Java命名规则 拥有固定标识符的static final基本数据类型(亦即编译期常数)都全部采用大写字母(用下划线分隔单个标识符里的多个单词)     接口中的字段会自动具备public属性 所以没必要专门指定     现在 通过导入c *或c Months 我们可以从包的外部使用常数——就象对其他任何包进行的操作那样 此外 也可以用类似Months JANUARY的表达式对值进行引用 当然 我们获得的只是一个int 所以不象C++的enum那样拥有额外的类型安全性 但与将数字强行编码(硬编码)到自己的程序中相比 这种(常用的)技术无疑已经是一个巨大的进步 我们通常把 硬编码 数字的行为称为 魔术数字 它产生的代码是非常难以维护的     如确实不想放弃额外的类型安全性 可构建象下面这样的一个类(注释①)     //: Month java  // A more robust enumeration system  package c ;    public final class Month    private String name;   private Month (String nm) name = nm;    public String toString() return name;    public final static Month     JAN = new Month ( January )     FEB = new Month ( February )     MAR = new Month ( March )     APR = new Month ( April )     MAY = new Month ( May )     JUN = new Month ( June )     JUL = new Month ( July )     AUG = new Month ( August )     SEP = new Month ( September )     OCT = new Month ( October )     NOV = new Month ( November )     DEC = new Month ( December );   public final static Month [] month =     JAN JAN FEB MAR APR MAY JUN     JUL AUG SEP OCT NOV DEC   ;   public static void main(String[] args)     Month m = Month JAN;    System out println(m);    m = Month month[ ];    System out println(m);    System out println(m == Month DEC);    System out println(m equals(Month DEC));      ///:~    ① 是Rich Hoffarth的一封E mail触发了我这样编写程序的灵感     这个类叫作Month 因为标准Java库里已经有一个Month 它是一个final类 并含有一个private构建器 所以没有人能从它继承 或制作它的一个实例 唯一的实例就是那些final static对象 它们是在类本身内部创建的 包括 JAN FEB MAR等等 这些对象也在month数组中使用 后者让我们能够按数字挑选月份 而不是按名字(注意数组中提供了一个多余的JAN 使偏移量增加了 也使December确实成为 月) 在main()中 我们可注意到类型的安全性 m是一个Month 对象 所以只能将其分配给Month 在前面的Months java例子中 只提供了int值 所以本来想用来代表一个月份的int变量可能实际获得一个整数值 那样做可能不十分安全     这儿介绍的方法也允许我们交换使用==或者equals() 就象main()尾部展示的那样 cha138/Article/program/Java/hx/201311/26405

相关参考

烟叶分级原理是什么?

要准确对烟叶进行分级,就必须首先弄清烟叶的分级原理。就目前世界范围的烟叶分级来看,基本上都把分类??分型??分组??分级的体系作为分级原理。  1.美国把国内的烟叶分为5类,零星烟分1类,进口烟分2类

什么是电能表常数?

  1)感应式电能表的常数表示每千瓦小时圆盘的转数。电能表常数会标注在电能表面板上,其单位为r/kWh,表示为每千瓦时转r转。由于电能表常数不同,记录相同的电能,常数小的电能表转动的速度慢,常数大的电

什么是电能表常数?

  1)感应式电能表的常数表示每千瓦小时圆盘的转数。电能表常数会标注在电能表面板上,其单位为r/kWh,表示为每千瓦时转r转。由于电能表常数不同,记录相同的电能,常数小的电能表转动的速度慢,常数大的电

比例常数法的计算公式

比例常数法的计算公式比例常数法是把附加费用分成两部分考虑:首先,根据每张保单的平均保险金额推算出每单位保额必须承担的固定费用,这部分作为一个固定常数,用c表示;然后,再确定营业保费的一定比例作为其余部

宇宙探秘 太阳常数

  在距离太阳一个天文单位处,同太阳光线方向垂直的单位面积在单位时间内所接收到的太阳总辐射能。在地球表面上的测量必须考虑到大气影响和太阳距离季节变化的修正。太阳常数的值约为每平方厘米每分钟2卡,或约为

知识大全 QQ分组设计,七个分组,要全是字的,不要符号,谢谢,急

QQ分组设计,七个分组,要全是字的,不要符号,谢谢,急!  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 我想在QQ分组里设定一个分组,专属我女朋友的,叫什么名字好呢

我想在QQ分组里设定一个分组,专属我女朋友的,叫什么名字好呢?热恋中。感情刚刚滴!  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内

知识大全 新浪微博加了关注,为什么分组里面不显示该微博换分组还是不显示。

新浪微博加了关注,为什么分组里面不显示该微博换分组还是不显示。你刷新或重登一下,可能就好了,如果还是不行你再关注换分组一下,就会解决。新浪微博出问题了..不显示微博不显示关注和粉丝了过段时间刷新试试新

电容器分组时应符合什么要求?

  1、分组电容器投切时,不应产生谐振;  2、适当减少分组数量和加大分组容量;  3、应与配套设备的技术参数相适应;  4、应满足电压偏差的允许范围。

电容器分组时应符合什么要求?

  1、分组电容器投切时,不应产生谐振;  2、适当减少分组数量和加大分组容量;  3、应与配套设备的技术参数相适应;  4、应满足电压偏差的允许范围。