java基础 java中枚举的应用 抽象方法问题

摘要:
packagecom.swift.meiju;importorg.junit.Test;publicclassDemo{@Testpublicvoidtest(){System.out.println(Meiju.C.getScore());}}上面测试,用了Junit下边枚举packagecom.swift.meiju;importorg.junit.Test;publicenumMeiju{/
packagecom.swift.meiju;
importorg.junit.Test;
public classDemo{
     @Test
     public voidtest() {
        System.out.println(Meiju.C.getScore());
     }
}

上面测试,用了Junit

下边枚举

packagecom.swift.meiju;
importorg.junit.Test;
public enumMeiju {
    //考试分数A B C D E 五个等级
    A("90~100"),B("80~89"),C("70~79"),D("60~69"),E("0~59");
    privateString score;
    privateMeiju(String score) {
        this.score=score;
    }
    publicString getScore() {
        return this.score;
    }
}

java基础 java中枚举的应用 抽象方法问题第1张

枚举是什么?

相当于

packagecom.swift.meiju;
public classEnumer {
    privateEnumer() {}
    public static final Enumer A=newEnumer();
    public static final Enumer B=newEnumer();
    public static final Enumer C=newEnumer();
    public static final Enumer D=newEnumer();
    public static final Enumer E=newEnumer();
}

有点像单例模式,只造出一个对象供外界使用;这个枚举一下造出好多个供使用,造出的对象不能改变

枚举出来的ABCDE都是可以用类名.直接调用的对象,对象可以赋值,和调用其成员方法


枚举中的对象 都是 public static final 确可以有abstract的方法 ,应该算是抽象类,可又实例化了,逻辑上都是到处都是冲突的,真是骚包的家伙

packagecom.swift.meiju;
importorg.junit.Test;
public enumMeiju {
    //考试分数A B C D E 五个等级
    A("90~100") {
        @Override
        publicString getTxt() {
            return "优";
        }
    },B("80~89") {
        @Override
        publicString getTxt() {
            return "良";
        }
    },C("70~79") {
        @Override
        publicString getTxt() {
            return "中";
        }
    },D("60~69") {
        @Override
        publicString getTxt() {
            return "及格";
        }
    },E("0~59") {
        @Override
        publicString getTxt() {
            return "差";
        }
    };
    privateString score;
    privateMeiju(String score) {
        this.score=score;
    }
    publicString getScore() {
        return this.score;
    }
    public abstractString getTxt();
}

Junit 测试

packagecom.swift.meiju;
importorg.junit.Test;
public classDemo{
     @Test
     public voidtest() {
        System.out.println(Meiju.C.getTxt());
     }
}

java基础 java中枚举的应用 抽象方法问题第2张

免责声明:文章转载自《java基础 java中枚举的应用 抽象方法问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python基础(二)--基本数据类型、格式化输出、基本运算符golang grpc keepalive下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

OC编程之道-创建对象之抽象工厂方法

定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。                  <AbstractProductA>        <AbstractProductB> <AbstractFactory>       createProuductA               createP...

学JAVA第十七天,接口与抽象方法

JAVA接口可以让代码更加有合理的规范性,就想一个项目小组,组长要负责把成员的代码整合,但是每个成员写的方式都是按照他们自己的想法来写的, 所以,整合起来就非常麻烦。 但是,如果我们的组长制作了一个接口,并要求每个成员都要按照这个接口的规格来写,这样代码整合起来就非常方便了。 就例如这个代码:(JAVA是支持中文的,这里是为了可以更加清楚的表现出我的意思,...

Java 抽象类和接口

抽象类 关键字: abstract 抽象类特点: 方法只有声明没有实现时, 该方法就是抽象方法, 需要被 abstract 修饰, 抽象方法必须定义在抽象类中, 该类必须也被 abstract 修饰 抽象类不可以被实例化. 因为抽象方法没有方法体, 调用抽象方法没有意义 抽象类的子类必须覆盖父类的所有抽象方法后, 该子类才可以实例化 抽象类的细节 抽...

java中abstract的用法

abstract(抽象)修饰符,可以修饰类和方法1,abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法。2,abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明(定义)而没有实现,实现部分以";"代替。需要子类...

Java面向对象之抽象类

内容: 1、抽象类的产生 2、抽象类和抽象方法的定义与使用 3、抽象类和抽象方法的注意事项 4、实例分析 1、抽象类的产生 当编写一个类时,我们往往会为该类定义一些方法,这些方法是用来描述该类的功能具体实现方式,那么这些方法都有具体的方法体 但是有的时候,某个父类只是知道子类应该包含怎么样的方法,但是无法准确知道子类如何实现这些方法。 比如一个图形类应该有...

Java常考面试题

Java常考面试题,整理自牛客网和程序员面试宝典,有的题不太好。 1. 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? 答:Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自...