Java

Java Enum Tutorial

Java Enum Tutorial
Java enum är en speciell Java-typ som definieras av en Java-klass. Det kallas också Java-uppräkningstypen. Den introduceras först i Java-version 5, som huvudsakligen används för att definiera samlingen av konstanter. Kompileringstypen av säkerhet säkerställs genom användning av enumtypen. Så när alla möjliga värden för variabeln är kända före kompileringstid är det bättre att använda enumtyp. Det definierar en klass som alltid sträcker sig från java.lang.Enum. Hur enumtyp kan deklareras och användas i Java visas i denna handledning.

Syntax:

offentligt enum enum_name
värde1, värde2, ... värdeN

Här, enum nyckelord används för att deklarera uppräkningstyp och värdena kommer att vara vilket konstant värde som helst.  Olika användningar av enumtyp i Java visas i nästa del av denna handledning.

Exempel 1: Deklarera och iterera enumvärden

Hur enumvärden kan definieras och nås med hjälp av "for" -slingan visas i följande exempel. Här tilldelas sju veckodagens namn i kortform som enumvärden. Därefter används 'för' -slingan för att upprepa varje värde från vardagar och skriva ut varje värde på varje rad som utdata.

offentlig klass enum1
// Definiera enumtyp
offentliga enum vardagar
Sön, må, tis, ons, tors, fre, lör

// main () -metoden
public static void main (String [] args)
Systemet.ut.println ("Den korta formen av 7 vardagar är:");
// Iterera värdena för enum
för (vardagar dag: vardagar.värden ())
Systemet.ut.println (dag);


Produktion:

Följande utdata visas efter att koden har körts.

Exempel 2: Använda enum i if-else-uttalandet

Följande exempel visar användningen av enum-variabel med if-else-if-satsen. Här heter en enum-variabel kurser deklareras med fyrrättskoder som värden. Klassen innehåller en konstruktör som initialiserar variabeln som heter kurs med vilket enumvärde som helst. Här kommer en kurskod att tillhandahållas vid tidpunkten för objektskapandet, och den kommer att kontrolleras med varje 'om' -villkor och skriva ut meddelandet där villkoret returnerar sant. Om alla villkor returnerar falska kommer meddelandet från det andra avsnittet att skrivas ut.

offentlig klass enum2
// Definiera enumtyp
offentliga enumkurser
CSE101, CSE205, CSE308, CSE407

// Deklarera en variabel av enumtyp
kurser;
// Förklara konstruktören
public enum2 (kurskurs)
detta.kurs = kurs;

a
public static void main (String [] args)
// Förklara ett objekt
enum2 object1 = new enum2 (kurser.CSE205);
// Kontrollera kursvärdet
om (objekt1.kurs == kurser.CSE101)
Systemet.ut.tryck ("Kursnamnet är Computer Fundamental");
annars om (objekt1.kurs == kurser.CSE205)
Systemet.ut.tryck ("Kursnamnet är datastruktur");
annars om (objekt1.kurs == kurser.CSE308)
Systemet.ut.tryck ("Kursnamnet är operativsystem");
annars om (objekt1.kurs == kurser.CSE407)
Systemet.ut.skriva ut ("Kursnamnet är Unix-programmering");
annan
Systemet.ut.skriva ut ("Kurskod finns inte");

Produktion:

I ovanstående kod, enumvärde, CSE205 tillhandahålls vid tidpunkten för skapande av objekt som matchade det andra "if" -villkoret och skrev ut meddelandet, "Kursnamnet är datastruktur.”

Exempel 3: Använda enum med konstruktör och metod

Hur enumkonstruktör och enummetod kan definieras och användas i java visas i följande exempel. De tolv enumvärdena med koder definieras med de tolv månaderna i kortform. En konstruktör av ett enum med en parameter deklareras i koden som initialiserar den privata heltalvariabeln som heter mKod. En namngiven metod readMCode () förklaras returnera värdena för mKod. I huvud () Metoden deklareras och initialiseras sex variabler med tom sträng för att lagra de specifika enumvärdena baserat på switch-case-värdena. Här används 'for' -slingan för att upprepa varje enumvärde och deklarera ett enum-objekt baserat på varje värde. När något enum-objekt skapas initialiseras koden för motsvarande enum-värde till mKod. Returvärdet för readMCode () metoden kommer att användas i omkopplaren för att matcha med fallvärden. Här definieras ett särskilt uttalandeblock för två fallvärden. Till exempel kommer 0 och 1 att returneras som mKod för månaderna, JAN och FEB. Dessa två månaders namn kommer att sparas i variabeln s1 och skrev ut värdet genom att kombinera med en annan sträng. Samma uppgift kommer att göras med de andra fem variablerna, s2, s3, s4, s5, och s6, för de andra tio månaderna.

Enligt koden, Vinter kommer att skrivas ut för månaden JAN och FEB. Vår kommer att skrivas ut för månaden MAR och APRIL. Sommar kommer att skrivas ut för månaden MAJ och JUNI. Regnperiod kommer att skrivas ut för månaden JUL och AUG. Höst kommer att skrivas ut för månaden SEP och OKT och Sen höst kommer att skrivas ut för månaden NOV och DEC.

offentlig klass enum3
offentliga enum månader
JAN (0), FEB (1), MAR (2), ARP (3), MAJ (4), JUN (5),
JUL (6), AUG (7), SEP (8), OKT (9), NOV (10), DEC (11);
privat int mCode;
// enum konstruktör
Månader (int mCode)
detta.mCode = mCode;

// enum-metoden
public int readMCode ()
returnera detta.mKod;


// main () -metoden
public static void main (String [] args)
// Initiera variabler
Sträng s1 = "", s2 = "", s3 = "", s4 = "", s5 = "", s6 = "";
// Iterera värdena för enum
för (Månader månad: Månader.värden ())
// Förklara enum-objekt
Månader m = månad;
brytare (m.readMCode ())

fall 0:
fall 1:
om (s1.är lika med (""))
s1 = månad.att stränga();
annat
s1 + = "och" + månad.att stränga();
Systemet.ut.println (s1 + "är vinter.");

ha sönder;
fall 2:
fall 3:
om (s2.är lika med (""))
s2 = månad.att stränga();
annat
s2 + = "och" + månad.att stränga();
Systemet.ut.println (s2 + "är våren.");

ha sönder;
fall 4:
fall 5:
om (s3.är lika med (""))
s3 = månad.att stränga();
annat
s3 + = "och" + månad.att stränga();
Systemet.ut.println (s3 + "är sommar.");

ha sönder;
fall 6:
fall 7:
om (s4.är lika med (""))
s4 = månad.att stränga();
annat
s4 + = "och" + månad.att stränga();
Systemet.ut.println (s4 + "är Rainy Season.");

ha sönder;
fall 8:
fall 9:
om (s5.är lika med (""))
s5 = månad.att stränga();
annat
s5 + = "och" + månad.att stränga();
Systemet.ut.println (s5 + "är hösten.");

ha sönder;
fall 10:
fall 11:
om (s6.är lika med (""))
s6 = månad.att stränga();
annat
s6 + = "och" + månad.att stränga();
Systemet.ut.println (s6 + "är senhösten.");

ha sönder;



Produktion:

Följande utdata visas efter att ovanstående kod har körts.

Slutsats:

När vi behöver arbeta med konstanta data är det bättre att använda enum-variabeln. De olika användningarna av enum-datatyp förklaras i denna handledning för att lära dig fördelarna med att använda uppräkningstyp i Java.

Hur man använder AutoKey för att automatisera Linux-spel
AutoKey är ett verktyg för desktopautomatisering för Linux och X11, programmerat i Python 3, GTK och Qt. Med hjälp av dess skript och MACRO-funktional...
Hur man visar FPS-räknare i Linux-spel
Linux-spel fick ett stort tryck när Valve tillkännagav Linux-stöd för Steam-klient och deras spel 2012. Sedan dess har många AAA- och indiespel tagit ...
Hur man laddar ner och spelar Sid Meier's Civilization VI på Linux
Introduktion till spelet Civilization 6 är ett modernt intag av det klassiska konceptet som introducerades i serien Age of Empires-spel. Idén var gans...