package org.lgy.study.enumstudy; public enum Operation{ PLUS,MINUS,MULTI,DIVIDE; public double eval(double a, double b){ switch(this) { case PLUS: return a + b; //因为前面有return语句,所以后面的break语句永远不会被执行 //break; case MINUS: return a - b; //break; case MULTI: return a * b; //break; case DIVIDE: return a / b; //break; //从java语法的角度来看,因为该方法有返回值,所以default语句是必须的 //但从实际的语义来看,因为this代表的是枚举类的实例,而枚举类的实例是固定的, //所以default语句是完全多余的 default: return 0.0; //break; } } public static void main(String[] args){ for(Operation o : Operation.values()){ System.out.println(o.eval(1, 2)); } } }
package org.lgy.study.enumstudy; /* 枚举类里定义抽象方法时不能使用abstract关键字将枚举类定义成抽象类(因为系统自动会为它添加abstract关键字),但因为枚举类需要显式创建枚举值,而不是作为父类,所以定义每个枚举值时必须为抽象方法提供实现,否则将出现编译错误。 */ public enum Operation{ PLUS { public double eval(double a, double b){ return a + b; } }, MINUS { public double eval(double a, double b){ return a - b; } }, MULTI { public double eval(double a, double b){ return a * b; } }, DIVIDE { public double eval(double a, double b){ return a / b; } }; //为枚举类定义一个抽象方法 //这个抽象方法由不同的枚举值提供实现 public abstract double eval(double a, double b); public static void main(String[] args){ for(Operation o : Operation.values()){ System.out.println(o.eval(1, 2)); } } }
相关推荐
Java包含抽象方法的枚举类示例 Java中的枚举类可以包含抽象方法,这种方式可以让枚举值实现不同的行为。下面是Java包含抽象方法的枚举类示例的知识点总结: 枚举类和抽象方法 在Java中,枚举类是一种特殊的类,它...
通过上述介绍,我们了解到Java枚举类的多种用法,包括声明、初始化、方法定义、构造器、转换为集合、遍历、比较、在switch语句中的应用以及序列化等。枚举类不仅提高了代码的可读性和安全性,还简化了常量管理,使得...
枚举类可以包含抽象方法,并且每个枚举实例都必须实现这个方法。这是一种常见的设计模式,用于定义枚举的行为。例如: ```java enum Shape { CIRCLE { @Override void draw() { System.out.println("Drawing ...
"Java 枚举抽象方法实例解析" Java 枚举抽象方法实例解析是 Java programming 中一个重要的概念,它允许开发者定义一组固定的常量值,并且每个常量值都有相同的行为,但是具体实现细节不同。使用枚举抽象方法可以使...
抽象类可以提供通用方法,而具体枚举类只负责定义枚举值。 ```php abstract class Enum { private static $values = []; final private function __construct() {} public static function values(): array { ...
- 枚举类型的所有实例都是 `Enum` 抽象类的子类。 - 枚举类型不能被继承,也不能被扩展。 - 每个枚举实例都是该枚举类型的 `static final` 实例。 #### 三、枚举类型的基本方法 枚举类型提供了一些内置的方法,...
枚举类中可以有抽象方法,但必须在元素列表声明中实现这些方法。此外,枚举类中还可以声明一些普通的成员变量和方法。 4. toString() 方法 toString() 方法是枚举类中的一个重要方法,它用于显示枚举类元素的字符...
- 通过抽象枚举类,可以定义一些共有的方法或属性,供子类枚举实例共享。 5. **枚举与工具类的结合**: - 枚举工具类:有时,我们可能会创建一个工具类来处理与枚举相关的通用任务,比如验证枚举值的合法性,或者...
为了让您的Enums充满活力,只需让他们扩展Enum抽象类! 安装 安装并在项目的根目录中运行以下命令: composer require miladrahimi/php-enum "1.*" 文献资料 考虑这个枚举类: namespace MiladRahimi \ Enum \ ...
Study4 类:Java 抽象类 Study5 类:Java 封装 Study6 类:Java 接口 Study7 类:Java 枚举 Study8 类:Java 反射 Study9 类:Java 注解 Study10 类:Java List、Set、Map Study11 类:Java try-catch-finally 异常...
1. 枚举类可以直接实现接口,并在枚举类内部定义接口的抽象方法。 2. 或者,每个枚举实例可以分别实现接口中的抽象方法,这样每个实例的行为可能不同。 五、注解(Annotation)概述: 注解是一种元数据,提供了将...
2. 方法:枚举不仅可以有实例方法,还可以有静态方法或抽象方法。例如: ```java public enum Color { // ... public String getName() { return name().substring(0, 1).toUpperCase() + name().substring(1)....
接口提供了抽象方法,枚举类可以提供这些方法的实现。这使得枚举类具有了更多的灵活性和扩展性。下面是一个示例: ```java public interface Shape { void draw(); } public enum ShapeEnum implements Shape { ...
3. **强制子类实现**:抽象类可以包含抽象方法,这些方法没有具体的实现。如果一个类继承了含有抽象方法的抽象类,那么这个子类必须实现所有抽象方法,否则它也必须声明为抽象类。这种方式确保了子类具备必要的功能...
本篇文章将深入探讨Java 5中的枚举基本应用,包括创建枚举、枚举方法、枚举实例以及枚举与switch语句的结合使用。 1. 创建枚举: 要创建枚举,我们需要使用`enum`关键字,后跟枚举名和一对大括号,其中包含枚举值...
抽象类(Abstract Classes)是不能被实例化的类,它们通常包含抽象方法,即没有实现的方法。抽象类用于定义子类必须实现的接口。在C#中,使用`abstract`关键字声明类和方法。例如: ```csharp public abstract ...
- 枚举类可以包含抽象方法,然后每个枚举实例都可以有自己的实现,如`Week`枚举中的`toLocaleString()`方法。 - 枚举也可以用来实现策略模式,通过不同的枚举实例代表不同的策略。 枚举类型在Java中是一种强大的...
* 局部内部类:Java 中的局部内部类是指在方法中定义的类。 JavaSE、JavaEE、JavaME * JavaSE:Java Standard Edition,是 Java 的标准版,主要用于桌面应用程序。 * JavaEE:Java Enterprise Edition,是 Java 的...
枚举类可以包含抽象方法,并且所有枚举实例都必须在枚举定义时实现这些方法。同时,枚举类也可以拥有常规的成员变量和方法,如上面的`Color`示例所示。 枚举类中常见的几个方法包括: 1. `toString()`:返回枚举...
7. **枚举抽象方法**:可以在枚举类型中定义抽象方法,每个枚举实例都必须提供相应的实现,这在策略模式等设计模式中很有用。 例如,我们可以为 `Color` 枚举添加一个返回英文名的方法: ```java public enum Color...