包含抽象方法的枚举类

public enum Operation
{
        PLUS,MINUS,TIMES,DIVIDE;//每一个枚举值都是一个实例
        double eval(double x,double y)//我们定义一个方法,实现不同的操作
        {
                switch(this)
                {
                        case PLUS: return x + y;
                        case MINUS: return x - y;
                        case TIMES: return x * y;
                        case DIVIDE: return x % y;
                        default: return 0;
                }
        }
        public static void main(String[] args)
        {
                System.out.println(Operation.PLUS.eval(3,4));
                System.out.println(Operation.MINUS.eval(3,4));
                System.out.println(Operation.TIMES.eval(3,4));
                System.out.println(Operation.DIVIDE.eval(32,4));
        }
}

[[email protected] java]# java Operation
7.0
-1.0
12.0
0.0

下面如果我们想使用内部类来解决呢?

public enum Operation2
{
        PLUS
        {
                public double eval(double x,double y)
                {
                        return x + y;
                }
        },//为什么这里会有一个,号呢?看了匿名内部类,你就会明白
        MINUS
        {
                public double eval(double x,double y)
                {
                        return x - y;
                }
        },
        TIMES
        {
                public double eval(double x ,double y)
                {
                        return x * y;
                }
        },
        DIVIDE
        {
                public double eval(double x,double y)
                {
                        return x % y;
                }
        };
        //为枚举类定义了一个抽象方法
        //这个抽象方法由不同的枚举值提供不同的实现
        public abstract double eval(double x,double y);
        public static void main(String[] args)
        {
                System.out.println(Operation2.PLUS.eval(3,4));
                System.out.println(Operation2.MINUS.eval(3,4));
                System.out.println(Operation2.TIMES.eval(3,4));
                System.out.println(Operation2.DIVIDE.eval(3,4));
        }
}

包含抽象方法的枚举类,布布扣,bubuko.com

时间: 2024-08-01 10:46:56

包含抽象方法的枚举类的相关文章

枚举类:用enum关键字来定义一个枚举类

1)枚举类的两种定义方法 1>通过构造器 public enum Grade{ A("A", "90-100"),B("B","80-89"),C("C", "70-79"),D("D", "80-89"),E("E", "90-100"); private String tip; private St

枚举类+抽象方法+内部类

package Class_study; public enum Operation {//枚举类+内部类+抽象函数 Divide{ public double eval(double x,double y){ return x/y; } },Pluse{ public double eval(double x,double y){ return x-y; } },Add{ public double eval(double x,double y){ return x+y; } },Minus{

Java基础15:深入剖析Java枚举类

Java基础15:深入剖析Java枚举类 枚举(enum)类型是Java 5新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示. 初探枚举类 在程序设计中,有时会用到由若干个有限数据元素组成的集合,如一周内的星期一到星期日七个数据元素组成的集合,由三种颜色红.黄.绿组成的集合,一个工作班组内十个职工组成的集合等等,程序中某个变量取值仅限于集合中的元素.此时,可将这些数据集合定义为枚举类型. 因此,枚举类型是某类数据可能取值的集合,如一周内星期可能取值的

Java枚举类接口实战

枚举类可以实现一个或多个接口.与普通类实现接口完全一样,枚举类实现接口时,需要实现该接口所包含的方法. 如果需要每个枚举值在调用同一个方法时呈现不同的行为,则可以让每个枚举值在{...}匿名块中实现自己的业务逻辑. public interface IGradeHandler { String getGrade(String studentName); } public enum GradeHandlerEnum implements IGradeHandler { //five grade l

JavaSE复习_6 枚举类

△单例类是指只有一个实例,而枚举类实际上就是有有限个实例的类,在类里已经把实例定义好了. △枚举类的三种创建形式: 1) enum Week { MON,TUE,WED;//枚举类有默认构造函数创建的三个实例} } 2) enum Week { MON("星期一"), TUE( "星期二"),WED ("星期三" ); //具有参数的构造函数 private String name; Week(String name) { this. name=

枚举类

enum SeasonEnum //这是一个枚举类,有四个枚举值 { SPRING,SUMMER,FALL,WINTER; } public class EnumTest { public void judge(SeasonEnum s) { switch(s) { case SPRING: System.out.println("春天"); break; case SUMMER: System.out.println("夏天"); break; case FALL

java 枚举类 enum 总结

枚举定义: enum是计算机编程语言中的一种数据类型.枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内.例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等.如果把这些量说明为整型, 字符型或其它类型显然是不妥当的.为此,C语言提供了一种称为“枚举”的类型.在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变 量取值不能超过定义的范围.应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型. java中枚举类总

JAVA学习--枚举类的使用

* 一.枚举类  * 1.如何自定义枚举类  * 2.如何使用enum关键字定义枚举类  *     >常用的方法:values() valueOf(String name)  *     >如何让枚举类实现接口:可以让不同的枚举类的对象调用被重写的抽象方法,执行的效果不同.(相当于让每个对象重写抽象方法) 1 //普通枚举类 2 class Season{ 3 //1.提供类的属性,声明为private final 4 private final String seasonName; 5 p

枚举类的介绍

枚举类,即对象为可穷举的类 JDK 1.5 新增的 enum 关键字用于定义枚举类,在这之前,需要自定义枚举类 若枚举只有一个成员(对象),则可以作为一种单例模式的实现方式--单例(单子)设计模式(Singleton) 自定义枚举类: public class TestSeason { public static void main(String[] args) { Season spring = Season.SPRING; Season summer = Season.SUMMER; Sea