Java基础增强---枚举

    xiaoxiao2025-08-30  42

    一、定义枚举的构造函数、方法和字段举例:

    1、代码:

    package cn.itcast.enumeration; import org.junit.Test; public class Demo1 { @Test public void test() { print(Grade.B); } public void print(Grade g) { System.out.println(g.getValue()); } } /* * class Grade { * private Grade() { } * * public static final Grade A = new Grade(); * public static final Grade B = new Grade(); * public static final Grade C = new Grade(); * public static final Grade D = new Grade(); * public static final Grade E = new Grade(); * } * 上述就等价于enum Grade{A,B,C,D,E} */ enum Grade { // 该类只有有参构造函数,所以不同于上述,必须在构造时传入String类型 A("90-100"), B("80-89"), C("70-79"), D("60-69"), E("0-59"); private String value;// 封装每个对象的分数 private Grade(String value) { this.value = value; } public String getValue() { return this.value; } }

    2、Junit运行test函数结果:

    二、枚举的抽象方法示例

    1、代码:

    package cn.itcast.enumeration2; import org.junit.Test; public class Demo1 { @Test public void test() { print(Grade.B); } public void print(Grade g) { System.out.println(g.localValue()+"---"+g.getValue()); } } /* * class Grade { private Grade() { } * * public static final Grade A = new Grade(); public static final Grade B = new * Grade(); public static final Grade C = new Grade(); public static final Grade * D = new Grade(); public static final Grade E = new Grade(); } 上述就等价于enum * Grade{A,B,C,D,E} */ // 带抽象方法的枚举 enum Grade { // 该类只有有参构造函数,所以不同于上述,必须在构造时传入String类型 A("90-100") { public String localValue() { return "优"; } }, B("80-89") { public String localValue() { return "良"; } }, C("70-79") { public String localValue() { return "一般"; } }, D("60-69") { public String localValue() { return "差"; } }, E("0-59") { public String localValue() { return "不及格"; } }; private String value;// 封装每个对象的分数 private Grade(String value) { this.value = value; } public String getValue() { return this.value; } public abstract String localValue(); }

    2、Junit运行test函数结果:

    三、枚举的常用方法(示例)

    package cn.itcast.enumeration2; import org.junit.Test; public class Demo1 { // 测试枚举的常用方法 @Test public void test2() { System.out.println(Grade.C.name()); System.out.println(Grade.C.ordinal()); String str = "B"; // Grade z = Grade.valueOf(Grade.class,str); Grade z = Grade.valueOf(str); System.out.println(z); //values方法在api里面是没有的,返回一个枚举数组 Grade gs[] = Grade.values(); for (Grade g1 : gs) { System.out.println(g1); } } } // 带抽象方法的枚举 enum Grade { // 该类只有有参构造函数,所以不同于上述,必须在构造时传入String类型 A("90-100") { public String localValue() { return "优"; } }, B("80-89") { public String localValue() { return "良"; } }, C("70-79") { public String localValue() { return "一般"; } }, D("60-69") { public String localValue() { return "差"; } }, E("0-59") { public String localValue() { return "不及格"; } }; private String value;// 封装每个对象的分数 private Grade(String value) { this.value = value; } public String getValue() { return this.value; } public abstract String localValue(); } /* // 用单态设计模式定义出了一个类 enum A { // class A; // Object } */
    转载请注明原文地址: https://ju.6miu.com/read-1302122.html
    最新回复(0)