Sobes.tech
Junior — Middle

Selgitage Enum Class mõistet ja selle erinevust tavapärastest loenditest

sobes.tech AI

Vastus AI-lt

Androidis (ja ka üldiselt Java-s) on enum class loendiklass, mis esindab konstante kogumit, millele saab lisada välju, meetodeid ja konstruktorid.

Erinevused tavalistest loenditest (näiteks C-s või lihtsatest konstantidest):

  • Tüüpide turvalisus — enum on täisväärtuslik klass ning enum-tüüpi muutuja võib võtta ainult määratud väärtusi.
  • Võimalus lisada käitumist — enumi sees saab määratleda meetodeid ja välju.
  • Kasutamine switch-is — enum on mugav kasutada valiklausetes.

Näide Java/Android enumist:

public enum Status {
    NEW(0),
    IN_PROGRESS(1),
    DONE(2);

    private int code;

    Status(int code) {
        this.code = code;
    }

    public int getCode() {
        return code;
    }
}

Seega, enum class on laiendatud viis määratleda fikseeritud konstantide kogum koos täiendava funktsionaalsusega, erinevalt lihtsatest loenditest, mis võivad olla ainult arvude või stringide kogum ilma loogikata.