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


    package com.swift.meiju;
    
    import org.junit.Test;
    
    public class Demo{
         @Test
         public void test() {
            System.out.println(Meiju.C.getScore());
         }
    }

    上面测试,用了Junit

    下边枚举

    package com.swift.meiju;
    
    import org.junit.Test;
    
    public enum Meiju {
        //考试分数A B C D E 五个等级
        A("90~100"),B("80~89"),C("70~79"),D("60~69"),E("0~59");
        private String score;
        private Meiju(String score) {
            this.score=score;
        }
        public String getScore() {
            return this.score;
        }
    }

    枚举是什么?

    相当于

    package com.swift.meiju;
    
    public class Enumer {
        
        private Enumer() {}
        public static final Enumer A=new Enumer();
        public static final Enumer B=new Enumer();
        public static final Enumer C=new Enumer();
        public static final Enumer D=new Enumer();
        public static final Enumer E=new Enumer();
    
    }

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

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


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

    package com.swift.meiju;
    
    import org.junit.Test;
    
    public enum Meiju {
        //考试分数A B C D E 五个等级
        A("90~100") {
            @Override
            public String getTxt() {
                return "优";
            }
        },B("80~89") {
            @Override
            public String getTxt() {
                return "良";
            }
        },C("70~79") {
            @Override
            public String getTxt() {
                return "中";
            }
        },D("60~69") {
            @Override
            public String getTxt() {
                return "及格";
            }
        },E("0~59") {
            @Override
            public String getTxt() {
                return "差";
            }
        };
        private String score;
        private Meiju(String score) {
            this.score=score;
        }
        public String getScore() {
            return this.score;
        }
        public abstract String getTxt();
    }

    Junit 测试

    package com.swift.meiju;
    
    import org.junit.Test;
    
    public class Demo{
         @Test
         public void test() {
            System.out.println(Meiju.C.getTxt());
         }
    }

  • 相关阅读:
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言I博客作业03
    C语言第二周作业
    C语言第一周课程作业
    C语言期末总结
    第一次作业
    C语言I博客作业09
  • 原文地址:https://www.cnblogs.com/qingyundian/p/8440034.html
Copyright © 2020-2023  润新知