Enumeration class of Java

Keywords: Spring

I. how to customize enumeration classes?

2. How to use enum to create enumeration classes and the main methods of enumeration classes?

3. How to implement enumeration class of interface?

Let me explain these problems in the following example code. Please refer to the comments for the explanation.

Let's take a look at the way to create enumeration classes without enum, which is faster and easier than learning.

public class TestEnum {
    public static void main(String[] args) {
        Season spring  = Season.SPRING;
        System.out.println(spring);
    }
}
class Season{
    // Provides properties of the class, declared as private final
    private String seasonName;
    private String seasonDesc;

     // Property declared final, initialized in the constructor
    private Season(String seasonName,String seasonDesc){
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;
    }
    public static  final Season SPRING = new Season("Spring","Spring");
    public static  final Season SUMMER = new Season("Summer","Summer");
    public static  final Season AUTUMN = new Season("Autumn","Autumn");
    public static  final Season WINTER = new Season("Winter","Winter");

    // Calling properties through public methods
    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }

    @Override
    public String toString() {
        return "Season{" +
                "seasonName='" + seasonName + '\'' +
                ", seasonDesc='" + seasonDesc + '\'' +
                '}';
    }
}

Here is how to use Enum to create enumeration classes:

/**
 * Common methods: values(), valueof()
 */
public class TestEnum2 {
    public static void main(String[] args) {
        Season2 spring  = Season2.SPRING;
        System.out.println(spring);
        System.out.println("-----------------");
        Season2 [] seasons = Season2.values();
        for (int i = 0; i < seasons.length; i++) {
            System.out.println(seasons[i]);
        }

        System.out.println("-----------------");
        String str = "AUTUMN";
        Season2 sea = Season2.valueOf(str);
        System.out.println(sea);

        System.out.println("-----------------");
        Thread.State[] states = Thread.State.values();
        for (int i = 0; i < states.length; i++) {
            System.out.println(states[i]);
        }

        System.out.println("-----------------");
        spring.show();
    }
}
// Enumeration class
enum Season2{
    /**
     *  Enumeration instance without interface
     * enum Requires enumerating objects on top
     */
    //    SPRING("Spring", "spring"),
    //    SUMMER("Summer"),
    //    AUTUMN("Autumn", "autumn"),
    //    WINTER("Winter", "winter");

    // The following is an example of an enumeration class implementation interface
    SPRING("Spring","spring"){
        public void show(){
            System.out.println("This is spring.");
        }
    },
    SUMMER("Summer","summer"){
        public void show(){
            System.out.println("This is summer.");
        }
    },
    AUTUMN("Autumn","autumn"){
        public void show(){
            System.out.println("This is autumn.");
        }
    },
    WINTER("Winter","winter"){
        public void show(){
            System.out.println("This is winter.");
        }
    };

    private String seasonName;
    private String seasonDesc;

    public void show(){
        System.out.println("It's a season");
    }
    private Season2(String seasonName,String seasonDesc){
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;
    }

    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }

    @Override
    public String toString() {
        return "Season{" +
                "seasonName='" + seasonName + '\'' +
                ", seasonDesc='" + seasonDesc + '\'' +
                '}';
    }
}

 

Posted by dstefani on Mon, 02 Dec 2019 15:23:48 -0800