<< Java
Az Enum-nak készíthetünk konstruktort is, ami kizárólag privát típusú lehet:
public enum AdamTest {
LALI(2),
ADAM(3)
;
private AdamTest(int a) {
}
}
Ha nem gyártunk konstruktort az enum-hoz akkor is van neki, ez a default constructor, ami nem vár paramétert. Ha paraméteres konstruktort hozunk létre, akkor minden ENUM elemnek () között meg kell adni a paramétereket.
Létrehozhatunk konstruktort üres paraméter listával is. Ekkor az alábbi helyes:
public enum AdamTest2 {
LALI,
ADAM()
;
private AdamTest2() {
}
}
Láthatjuk, hogy megadhatjuk az enum felsorolást zárójellel és anélkül is.
Az enumnak tetsz?leges mez?ket is definiálhatunk, de kötelez?en private mez?knek kell lenni.
Ezeket a mez?ket az enum konstruktor segítségével szokásos feltölteni.
public enum AdamTest {
LALI(2),
ADAM(3)
;
private int enumInt;
private AdamTest(int a) {
this.enumInt=a;
}
}
Tehát minden egyes enum példányban ami vagy LALI vagy ADAM típus lesz, benne lesz az az int érték, amit az enum példányosító konstruktor hozzárendel.
Az enum-nak készíthetünk publikus metódusokat is, amik már vissza tudják adni azokat az értékeket, amiket a konstruktorral hozzárendeltünk az enum példányokhoz.
public enum AdamTest {
LALI(2),
ADAM(3)
;
private int enumInt;
private AdamTest(int a) {
this.enumInt=a;
}
public int getEnumInt(){
return enumInt;
}
}
Ha példányosítjuk a fenti enumot, akkor az alábbit fogjuk látni:
AdamTest adamTest1 = AdamTest.LALI;
AdamTest adamTest2 = AdamTest.ADAM;
System.out.print(adamTest1.getEnumInt()); --> 2
System.out.print(adamTest2.getEnumInt()); --> 3