Difference between revisions of "Java Enum"

From berki WIKI
Jump to: navigation, search
(Enum field)
Line 40: Line 40:
  
 
Ezeket a mezőket az enum konstruktor segítségével szokásos feltölteni.  
 
Ezeket a mezőket az enum konstruktor segítségével szokásos feltölteni.  
 +
<source lang="java">
 +
public enum AdamTest {
 +
 +
    LALI(2),
 +
    ADAM(3)
 +
    ;
 +
 +
    private int enumInt;
 +
 +
    private AdamTest(int a) {
 +
      this.enumInt=a;
 +
    }
 +
}
 +
</source>
 +
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.
 +
* LALI -> 2
 +
* ADAM -> 3
 
<br>
 
<br>
  
 
=Enum methods=
 
=Enum methods=
 +
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.
 +
<source lang="java">
 +
public enum AdamTest {
 +
 +
    LALI(2),
 +
    ADAM(3)
 +
    ;
 +
 +
    private int enumInt;
 +
 +
    private AdamTest(int a) {
 +
      this.enumInt=a;
 +
    }
 +
 +
    public int getEnumInt(){
 +
      return enumInt;
 +
    }
 +
}
 +
<br>
 +
Ha példányosítjuk a fenti enumot, akkor az alábbit fogjuk látni:
 +
<source lang="java">
 +
 +
  AdamTest adamTest1 = AdamTest.LALI;
 +
  AdamTest adamTest2 = AdamTest.ADAM;
 +
 +
  System.out.print(adamTest1.getEnumInt()); --> 2
 +
  System.out.print(adamTest2.getEnumInt()); --> 3
 +
 +
</source>

Revision as of 08:57, 12 August 2022

<< Java

Enum Constructor


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.



Enum field

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.

  • LALI -> 2
  • ADAM -> 3


Enum methods

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;
    }
}
<br>
Ha példányosítjuk a fenti enumot, akkor az alábbit fogjuk látni: 
<source lang="java">

   AdamTest adamTest1 = AdamTest.LALI;
   AdamTest adamTest2 = AdamTest.ADAM;

   System.out.print(adamTest1.getEnumInt()); --> 2
   System.out.print(adamTest2.getEnumInt()); --> 3