当前位置: 首页 > 面试题库 >

Java枚举可以有行为吗?

劳华灿
2023-03-14
问题内容

在Java中,Enum可以完成Enums所做的伟大工作,但也可以具有方法(行为和逻辑)。与使用枚举类相比,这有什么优势?简单的例子来说明这一点也将受到欢迎。


问题答案:

这是一个简单的例子:

enum RoundingMode {
    UP {
        public double round(double d) {
            return Math.ceil(d);
        }
    },
    DOWN {
        public double round(double d) {
            return Math.floor(d);
        }
    };

    public abstract double round(double d);
}


 类似资料:
  • 问题内容: 这是我要完成的工作,我有一个包含一些值的枚举的类,我想对该类进行子类化并向该枚举添加更多值。这是一个不好的例子,但是: 因此HexDigits.Digit包含所有十六进制数字。那可能吗? 问题答案: 不,这不可能。最好的办法是使两个枚举实现和接口,然后使用该接口代替枚举。所以:

  • 问题内容: 枚举可以有抽象方法吗?如果是这样,有什么用,并给出一个场景来说明这种用法。 问题答案: 是的,但是您可能更喜欢实现接口的枚举,请看这里。我认为它看起来好多了。这是抽象方法的示例:

  • 我有一个包含两个值的枚举类,我想创建一个接收一个值并返回另一个值的方法。我还想保持类型安全(这就是为什么我使用枚举类而不是枚举)。 http://www.cplusplus.com/doc/tutorial/other_data_types/没有提到任何关于方法的内容,但是,我的印象是,任何类型的类都可以有方法。

  • 问题内容: 是否可以在Java枚举中使用,还是需要使用?在我的测试中,它始终有效,但是我不确定是否可以保证。特别是,在枚举上没有方法,因此我不知道是否有可能获得一个枚举,该枚举将返回不同于的值。 例如,这样可以吗: 还是我需要这样写: 问题答案: 仅需2美分:这是Sun发布的Enum.java的代码,并且是JDK的一部分:

  • 问题内容: 该方法返回枚举实例的序数。 如何设置枚举的序数? 问题答案: 您无法设定。它始终是常量定义的序数。请参阅Enum.ordinal()的文档: 返回此枚举常量的序数(其在枚举声明中的位置,其中初始常量的序数为零)。大多数程序员都不会使用这种方法。它设计用于复杂的基于枚举的数据结构,例如EnumSet和EnumMap。 实际上-您不需要。如果要一些整数属性,请定义一个。

  • 如果有人理解java编译器为什么这么做,请解释一下。