java enum java enumeration tutorial with examples
Deze tutorial gaat dieper in op de Java Enum-klasse en constructor. We zullen leren hoe Enum te gebruiken door middel van verschillende Java-programmeervoorbeelden:
Dit is een speciale klas waarvan de uitleg in detail zal worden gegeven. Er wordt inzicht gegeven in de Java Enum-klasse, samen met de lijst met methoden die deze ondersteunt.
Voldoende programma's die de Java enum-concepten implementeren en enkele veelgestelde vragen die tijdens de interviews kunnen worden gesteld, zijn in deze tutorial opgenomen voor een gemakkelijk begrip.
Kijk hier om de Java Training Series voor iedereen te zien.
Wat je leert:
Java-opsomming
Een Java-opsomming is niets anders dan een lijst met instantievariabelen, methoden of constructors. Dit zijn een groep constanten. Het concept van opsomming is geïntroduceerd in JDK5. De standaardeigenschap van elke opsommingsconstante is openbaar, statisch en definitief.
enum Trefwoord
Opsomming wordt gemaakt met behulp van een trefwoord genaamd ' opsomming
Hieronder wordt de syntaxis gegeven waarmee we een opsomming kunnen maken.
Syntaxis:
enum enumerated_type_name
enumerator1, enumerator2,… enumeratorN;
Opmerking: enum kan alleen worden gedefinieerd binnen een klasse of interface op het hoogste niveau of in een statische context. Het mag niet in een methode zitten.
enum Voorbeeld
In dit voorbeeld gaan we vier enumerators initialiseren, d.w.z. schoppen, harten, ruiten en klaveren die behoren tot een opgesomd type genaamd kaarten.
Vervolgens zullen we proberen om elk van deze enumerators af te drukken.
Uitgang:
Enum-klasse
Een ding dat je moet hebben opgemerkt in het bovenstaande voorbeeld (zie opmerkingen) is dat we geen 'Nieuw zoekwoord' tijdens het instantiëren. Hoewel de opsommingen een klasse Enum en ook de constructors definiëren, gebruiken ze geen nieuw trefwoord.
We kunnen de enumerators gebruiken die op dezelfde manier zijn gedefinieerd als de primitieve. Enum is een generieke klasse en alle opsommingen erven Enum.
Syntaxis:
// E is het opsommingstype.
klasse Enum
Hoe Enum in Java te gebruiken
Laten we met behulp van Java-voorbeelden bekijken hoe Enum in verschillende scenario's kan worden gebruikt:
Binnen een klasse
Enum kan binnen of buiten (voorbeeld trefwoord enum) een klasse worden gedeclareerd, maar niet binnen een methode. Hier laten we zien hoe enum wordt gedeclareerd in een klasse.
In het onderstaande voorbeeld hebben we een opsomming gemaakt binnen een klasse en vervolgens hebben we de waarde of enumerator opgehaald met behulp van een referentievariabele a1.
Uitgang:
Enum door lussen herhalen
Hier zullen we bespreken hoe we een enum kunnen doorlopen. We hebben opsomming gedeclareerd met vier enumerators (buiten een klasse). Vervolgens hebben we voor elke lus (binnen een klasse) a geïnitialiseerd en geprobeerd de waarde van de enumerators op te halen.
Uitgang:
Java-programmeervragen en antwoorden voor ervaren
In als-anders
In het onderstaande programma hebben we een opsomming gemaakt met drie verschillende enumerators en vervolgens de enumerator opgeslagen in de referentievariabele voor een van de gespecificeerde enumerators.
Vervolgens zijn we begonnen met de if-conditiecontrole waarbij we twee voorwaarden hebben geïmplementeerd die zijn gespecificeerd met OR, zodat als aan een van die voorwaarden is voldaan, het de instructie zal afdrukken die is gespecificeerd in de if-conditie.
Anders wordt de instructie afgedrukt die is opgegeven in de else-voorwaarde.
Uitgang:
In Switch-instructie
In het onderstaande programma hebben we een opsomming gemaakt met vier enumerators. Vervolgens hebben we een van de enumerators in de referentievariabele opgeslagen. Daarna hebben we een Switch-instructie geïnitialiseerd en elk van deze enumerators gecontroleerd.
Bij het optreden van die specifieke enumerator, zal het de verklaring afdrukken die in het specifieke geval is gespecificeerd.
Uitgang:
Enum-veld en methoden
Enum-veld
In deze sectie wordt het enum-veld in detail uitgelegd. We kunnen velden toevoegen aan de Java-enum en elke teller krijgt deze velden. De veldwaarde moet worden toegewezen aan de constructor van de enum.
In de onderstaande syntaxis kunnen we zien dat er een opsomming is gedefinieerd met drie enumerators. Naast elke enumerator hebben we een veld van het type int gedefinieerd. Bijv. - (3), (2) en (1) respectievelijk).
Dit somt op dat Java-enum een constructor heeft waaraan een int moet doorgegeven worden. Deze constructor stelt het veld int in. Wanneer een enumerator is gedefinieerd, wordt die int-waarde (opgegeven voor die enumerator) doorgegeven aan de constructor.
Syntaxis:
Opmerking: Raadpleeg bijvoorbeeld in het veld Enum de sectie ' Enum Constructor
Enum-methoden
# 1) naam ()
public final String name () - Retourneert de naam van de aanroepende constante (ongewijzigd of ongewijzigd).
# 2) is gelijk aan ()
public final boolean equals (Object other) - Geeft true terug als obj en het aanroepende object naar dezelfde constante verwijzen.
# 3) toString
public String toString () - Retourneert de naam van de aanroepende constante. Komt niet noodzakelijk overeen met de naam die wordt gebruikt in de aangifte van de opsomming.
# 4) kloon
beschermde laatste objectkloon ()
gooit CloneNotSupportedException - Dit betekent dat de enum een uitzondering genereert wanneer geprobeerd wordt te klonen.
# 5) hashCode ()
public final int hashCode () - Retourneert de hash-code voor het aanroepende object.
# 6) afronden ()
protected final void finalize () - enum-klasse kan geen gefinaliseerde methoden hebben. Geen retourwaarde.
# 7) CompareTo ()
public final int CompareTo (E obj) - Dit vergelijkt de enum met het opgegeven object obj. Het retourneert negatief als het object kleiner is dan het opgegeven object. Het retourneert positief als dit object groter is dan het opgegeven object obj en het retourneert nul als het opgegeven object gelijk is aan dit object.
# 8) getDeclaringClass
public final Class getDeclaringClass () - Retourneert het opsommingstype (ook bekend als enum declarerende klasse) waarvan de aanroepende constante lid is.
# 9) ordinal (), values () en valueOf ()
Al deze methoden maken deel uit van het pakket java.lang.Enum De ordinal () methode retourneert de volgorde van de opsommingsconstante op basis van de index van de constante.
De methode values () retourneert alle waarden die aanwezig zijn in de opsomming. De methode valueOf (String) retourneert de opsommingsconstante van de invoertekenreeks. Als de opgegeven tekenreeks niet overeenkomt met de constante, wordt IllegalArgumentException gegenereerd.
Hieronder is het programmeervoorbeeld gegeven waarin we hetzelfde voorbeeld hebben gebruikt (als enum-trefwoordvoorbeeld) en het concept van alle drie de methoden hebben geïmplementeerd.
Uitgang:
Enum Constructor
Enum (omdat het ook een klasse is) ondersteunt constructor om gegevens door te geven tijdens het maken van enumerators of ook wel bekend als enum-constanten.
De belangrijkste eigenschap van een enum-constructor is dat ze een privé- of privépakket zijn. Dit betekent dat ze toegankelijk zijn binnen een klas of binnen een pakket.
Laten we het onderstaande voorbeeld eens bekijken. Hier hebben we gebruik gemaakt van zowel de methodiek als de constructor. Allereerst hebben we een opsomming gemaakt met de naam 'spelers' met vijf enumerators en het veld.
Dan hebben we een constructor en een methode die het aantal runs teruggeeft dat door elke speler of teller of opsommingsconstante wordt gescoord.
Daarna hebben we de hoofdklasse waarin we gebruik hebben gemaakt voor elke lus met de methode values () om elke enumerator op te slaan en te herhalen. We hebben ook de methode genoemd voor het aantal runs dat door elke speler wordt gescoord.
Uitgang:
Veel Gestelde Vragen
V # 1) Wat is het verschil tussen Iterator en Enumeration in Java?
Antwoord: Hieronder is het verschil tussen Iterator en Enumeration weergegeven.
Iterator | Opsomming |
---|---|
Het is een algemene cursor die wordt gebruikt om elementen te herhalen en is van toepassing op alle verzamelingsklassen. | Het is geen algemene cursor omdat deze alleen van toepassing is op oudere klassen zoals Enum. Alleen toestemming lezen voor een verzamelingsklasse. |
Enkele van de methoden zijn hasNext (), next () voor iteratie. | Enkele van de methoden zijn hasMoreElements (), nextElement () voor iteratie. |
We kunnen het element in een verzameling verwijderen met iterator. | We kunnen het element in een verzameling niet verwijderen met Opsomming omdat het alleen leesrechten heeft. |
Vraag 2) Hoe ondersteunt Enum Inheritance?
Antwoord: Afterall Enum is ook een klasse in Java, dus het moet Inheritance ondersteunen, wat een basisprincipe is van OOPS. Alle opsommingen breiden de klasse java.lang.Enum uit. Omdat een klasse alleen een enkele ouder kan uitbreiden, breidt de Enum-klasse geen andere uit.
De toString () die deel uitmaakt van de Enum-klasse (uitgelegd in de sectie Enum-methode) wordt overschreven in de java.lang.Enum-klasse.
Gevolgtrekking
In deze tutorial hebben we de opsommingen, enumerators, Java Enum-klasse en het enum-sleutelwoord besproken met de juiste voorbeelden en uitleg waar nodig. We hebben ook inzicht gegeven in de belangrijke methoden die zijn gekoppeld aan de klasse Enum met enumveld.
Er is een inzicht gegeven in de constructor, enum met if-else, switch en loops.
Bezoek hier om Java vanaf het begin te leren.
Aanbevolen literatuur
- Zelfstudie voor Java-scannerklassen met voorbeelden
- Java Integer en Java BigInteger Class met voorbeelden
- Java Float-zelfstudie met programmeervoorbeelden
- Wat is Java-vector | Java Vector Class-zelfstudie met voorbeelden
- TreeMap in Java - Tutorial met Java TreeMap-voorbeelden
- Java Double - Tutorial met programmeervoorbeelden
- Zelfstudie voor Java-array-klassen - java.util.Arrays-klasse met voorbeelden
- C # Concepts: Constructor, Destructor, Static Class, Struct & Enum