`

枚举类:包含抽象方法的枚举类

 
阅读更多
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中,枚举类是一种特殊的类,它...

    java枚举类用法

    通过上述介绍,我们了解到Java枚举类的多种用法,包括声明、初始化、方法定义、构造器、转换为集合、遍历、比较、在switch语句中的应用以及序列化等。枚举类不仅提高了代码的可读性和安全性,还简化了常量管理,使得...

    java枚举ppt和详细代码

    枚举类可以包含抽象方法,并且每个枚举实例都必须实现这个方法。这是一种常见的设计模式,用于定义枚举的行为。例如: ```java enum Shape { CIRCLE { @Override void draw() { System.out.println("Drawing ...

    Java枚举抽象方法实例解析

    "Java 枚举抽象方法实例解析" Java 枚举抽象方法实例解析是 Java programming 中一个重要的概念,它允许开发者定义一组固定的常量值,并且每个常量值都有相同的行为,但是具体实现细节不同。使用枚举抽象方法可以使...

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

    抽象类可以提供通用方法,而具体枚举类只负责定义枚举值。 ```php abstract class Enum { private static $values = []; final private function __construct() {} public static function values(): array { ...

    java 枚举类总结

    - 枚举类型的所有实例都是 `Enum` 抽象类的子类。 - 枚举类型不能被继承,也不能被扩展。 - 每个枚举实例都是该枚举类型的 `static final` 实例。 #### 三、枚举类型的基本方法 枚举类型提供了一些内置的方法,...

    java enum 枚举 学习资料

    枚举类中可以有抽象方法,但必须在元素列表声明中实现这些方法。此外,枚举类中还可以声明一些普通的成员变量和方法。 4. toString() 方法 toString() 方法是枚举类中的一个重要方法,它用于显示枚举类元素的字符...

    对enum简单的封装

    - 通过抽象枚举类,可以定义一些共有的方法或属性,供子类枚举实例共享。 5. **枚举与工具类的结合**: - 枚举工具类:有时,我们可能会创建一个工具类来处理与枚举相关的通用任务,比如验证枚举值的合法性,或者...

    php-enum:一个PHP抽象枚举类

    为了让您的Enums充满活力,只需让他们扩展Enum抽象类! 安装 安装并在项目的根目录中运行以下命令: composer require miladrahimi/php-enum "1.*" 文献资料 考虑这个枚举类: namespace MiladRahimi \ Enum \ ...

    本项目适合于新手小白入门快速了解掌握Java 大部分必备知识,用于Java的学习与进阶,也可以用于回忆巩固Java 基础用法语法

    Study4 类:Java 抽象类 Study5 类:Java 封装 Study6 类:Java 接口 Study7 类:Java 枚举 Study8 类:Java 反射 Study9 类:Java 注解 Study10 类:Java List、Set、Map Study11 类:Java try-catch-finally 异常...

    Java枚举类的使用与注解

    1. 枚举类可以直接实现接口,并在枚举类内部定义接口的抽象方法。 2. 或者,每个枚举实例可以分别实现接口中的抽象方法,这样每个实例的行为可能不同。 五、注解(Annotation)概述: 注解是一种元数据,提供了将...

    使用枚举规范方法命名

    2. 方法:枚举不仅可以有实例方法,还可以有静态方法或抽象方法。例如: ```java public enum Color { // ... public String getName() { return name().substring(0, 1).toUpperCase() + name().substring(1)....

    502.500.JAVA基础教程_枚举类与注解-使用enum关键字定义的枚举类实现接口(502).rar

    接口提供了抽象方法,枚举类可以提供这些方法的实现。这使得枚举类具有了更多的灵活性和扩展性。下面是一个示例: ```java public interface Shape { void draw(); } public enum ShapeEnum implements Shape { ...

    Java4Android24_为什么用抽象类

    3. **强制子类实现**:抽象类可以包含抽象方法,这些方法没有具体的实现。如果一个类继承了含有抽象方法的抽象类,那么这个子类必须实现所有抽象方法,否则它也必须声明为抽象类。这种方式确保了子类具备必要的功能...

    Java高新技术_java5的枚举的基本应用

    本篇文章将深入探讨Java 5中的枚举基本应用,包括创建枚举、枚举方法、枚举实例以及枚举与switch语句的结合使用。 1. 创建枚举: 要创建枚举,我们需要使用`enum`关键字,后跟枚举名和一对大括号,其中包含枚举值...

    C#中的简单工厂和虚方法、抽象类、抽象方法

    抽象类(Abstract Classes)是不能被实例化的类,它们通常包含抽象方法,即没有实现的方法。抽象类用于定义子类必须实现的接口。在C#中,使用`abstract`关键字声明类和方法。例如: ```csharp public abstract ...

    2021年JAVA枚举类型知识点.docx

    - 枚举类可以包含抽象方法,然后每个枚举实例都可以有自己的实现,如`Week`枚举中的`toLocaleString()`方法。 - 枚举也可以用来实现策略模式,通过不同的枚举实例代表不同的策略。 枚举类型在Java中是一种强大的...

    java核心基础技术卷,(基础语法,面向对象,异常,泛型,IO,枚举,反射机制,集合,内部类,)

    * 局部内部类:Java 中的局部内部类是指在方法中定义的类。 JavaSE、JavaEE、JavaME * JavaSE:Java Standard Edition,是 Java 的标准版,主要用于桌面应用程序。 * JavaEE:Java Enterprise Edition,是 Java 的...

    java enum枚举教程学习资料

    枚举类可以包含抽象方法,并且所有枚举实例都必须在枚举定义时实现这些方法。同时,枚举类也可以拥有常规的成员变量和方法,如上面的`Color`示例所示。 枚举类中常见的几个方法包括: 1. `toString()`:返回枚举...

    JAVA枚举JAVA枚举.doc

    7. **枚举抽象方法**:可以在枚举类型中定义抽象方法,每个枚举实例都必须提供相应的实现,这在策略模式等设计模式中很有用。 例如,我们可以为 `Color` 枚举添加一个返回英文名的方法: ```java public enum Color...

Global site tag (gtag.js) - Google Analytics