`
布衣九久
  • 浏览: 54932 次
  • 性别: Icon_minigender_1
  • 来自: 江苏 无锡
社区版块
存档分类
最新评论

我们为什么要用枚举,不用常量

阅读更多

忽然有了疑问,我们为什么要用枚举而不用public static final的常量解决类似问题。


通过网络搜索初步得到的结论是“接口直观,类型安全”等。


具体的例子可以参考下面的链接

http://dev.firnow.com/course/3_program/java/javashl/2007123/89627.html


为什么说接口直观呢? 因为如果你定义了枚举,那么需要枚举值作为参数的方法,就能在方法的参数里,直接写枚举这个类名,这样别人一看就知道,哦,我这应该是传一个枚举值。

相比较而言用public static final的方法就不这么直观了,假设是个final int那方法的参数里就是写int, 是个String那就是String。 
如果不了解代码,很有可能让别人误觉得这里传个int,String就可以了,谁会想到要传事先定义好的一些变量呢?

为什么说安全呢?我的理解是,因为你的参数是一个枚举类型,那么你往里面传的时候就只能传枚举类型里面定义的一些值了,传不进其他值,这从某种意义上来说就是安全了。

所以细细思之程序设计还是有很多值得探讨的地方的,如果你有更好的见解,希望能留下你的评价。
0
1
分享到:
评论

相关推荐

    易语言C枚举常量转换

    在易语言中,有时我们需要与使用其他编程语言(如C)编写的代码进行交互,这就涉及到不同语言间的数据类型转换,特别是枚举常量的转换。 枚举(Enumeration)是C语言中的一种复合数据类型,它允许我们定义一组具有...

    C枚举常量转换易语言源码

    在这个主题中,我们将关注的是C语言中的枚举和如何将C语言中的枚举常量转换为易语言(Easy Language)的源码。 C语言中的枚举常量: 在C语言中,枚举常量是通过`enum`关键字定义的。例如: ```c enum Color { RED,...

    Java中怎样由枚举常量的ordinal值获得枚举常量对象

    Java1.5提供了关键字enum,能够通过该关键字方便得定义自己须要的枚举类型,比方  enum Season { ...也是说,使用name()方法和valueOf(String)方法能够在枚举类型对象和字符串之间方便得转换。当然,假设valu

    Excel VBA 枚举 常量列表对应的数字

    枚举常量列表对应着不同的数值,这些数值在程序中用于执行特定操作或表示特定状态。以下是一些Excel VBA中的常用枚举常量及其对应的数字: 1. **日期和时间相关的枚举**: - `xl24HourClock`:值为33,表示24小时...

    C枚举常量转换.rar

    1. **枚举到整型转换**:由于枚举本质上是整型,所以可以直接将枚举常量转换为int类型。例如: ```c enum Color color = Red; int value = (int)color; ``` 2. **整型到枚举转换**:虽然不推荐,但也可以将整型...

    使用类常量方式实现PHP枚举

    - **枚举的遍历**:无法直接遍历枚举类的所有常量,需要手动列出或使用反射类获取。 ### 5. PHP 8.1及以后的枚举支持 自PHP 8.1开始,PHP原生支持了枚举类型,提供了更好的类型安全和语言集成。例如: ```php ...

    java 通过反射获取枚举类,及枚举类的值,枚举类枚举实例名

    这个方法返回一个包含所有枚举常量的数组。 ```java Color[] colors = colorClass.getEnumConstants(); for (Color color : colors) { System.out.println(color); } ``` 3. **获取枚举实例名**:每个枚举实例都...

    举例说明易语言中枚举常量的使用方法

    定义了枚举常量后,我们就可以在代码中使用它们,替代直接使用整数值。比如在创建语音识别控件时,我们可以使用枚举常量作为参数: ```易语言 创建对象 .语音识别控件, #颜色.黑色, #颜色.白色 ``` 这里的`...

    C枚举常量转换易语言源码.rar

    这个压缩包文件可能包含了一个程序或者代码示例,演示了如何将C语言中的枚举常量转换为易语言可以理解和使用的格式。转换过程可能包括读取C语言的枚举定义,然后在易语言中创建相应的常量或者映射表。 转换的过程...

    易语言源码C枚举常量转换易语言源码.rar

    3. **编写转换函数**:为了在易语言中使用C枚举常量,我们可以编写一个函数,该函数接收C语言的枚举值作为参数,然后返回对应的易语言常量。反之亦然,如果需要从易语言常量转换回C枚举,也可以写一个函数。 4. **...

    易语言源码C枚举常量转换易语言源码.7z

    在"易语言源码C枚举常量转换易语言源码.7z"这个压缩包中,包含的源代码可能是用于将C语言中的枚举常量转换为易语言可理解的格式,这样可以方便易语言程序与C语言编写的库进行交互或集成。 C语言中的枚举...

    易语言C枚举常量转换易语言源码.rar

    易语言C枚举常量转换易语言源码.rar 易语言C枚举常量转换易语言源码.rar 易语言C枚举常量转换易语言源码.rar 易语言C枚举常量转换易语言源码.rar 易语言C枚举常量转换易语言源码.rar 易语言C枚举常量转换易语言...

    Excel常用枚举常量列表对应的数字

    在Excel VBA编程中,枚举常量是预先定义好的值,它们代表特定的功能或设置。这些常量在VBA的Microsoft Excel对象...了解并熟练使用这些枚举常量,将有助于编写高效且易于维护的脚本,特别是在跨平台或跨应用开发时。

    JDK5.0新特性 常量 、枚举、 for each、反射

    在JDK 5.0之前,我们通常使用final关键字来创建不可变的变量,但这样的变量并非真正的常量。JDK 5.0引入了注解(Annotation),允许开发者在源代码中添加元数据,这其中包括了`@Deprecated`和`@Override`等预定义...

    56个民族枚举类

    通常,这样的枚举类可能会包含每个民族的枚举常量,可能还会包括一些方法来获取每个民族的英文名称或其他属性。例如: ```java public enum Nationality { HAN("汉族", "Han"), MAN("满族", "Manchu"), ZHANG(...

    枚举enum和switch 的使用

    枚举(Enum)在编程语言中是一种非常有用的数据类型,它允许我们定义一组相关的命名常量,便于代码的可读性和维护。在C#中,枚举是通过`enum`关键字来创建的。在给定的示例中,`BoxType`枚举定义了三种箱型:...

    简单总结java枚举类型

    枚举常量之间可以使用`==`进行比较,因为它们是引用类型的等价比较,而非值的比较。 9. 枚举和序列化: 默认情况下,枚举是可序列化的。如果不想枚举实例被序列化,可以在枚举类型上添加`@java.io.Serializable`...

    使用JS枚举简化if else

    使用枚举后,我们可以这样优化: ```javascript // 假设已经有了Color枚举 function printColor(color) { if (Color[color]) { console.log(Color[color]); } else { console.log('未知颜色'); } } ``` 或者...

    enum枚举类的应用

    包含了关于枚举类的应用,以及枚举类和接口的组合应用,扩展映射关系。很有用的工具类。

Global site tag (gtag.js) - Google Analytics