Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Java 1.5 ENUM Tutorial

typ enum je nová funkcia v Java 1.5.0 jazyka , ktorý je určený na riešenie nedostatkov v spôsobe , akým vymenované hodnoty boli zaobchádzané v predchádzajúcich verziách Javy . U jeho najzákladnejšie , prijíma štruktúru podobnú vymenovaného typu v jazykoch C - založené , ale to je oveľa silnejší . Enum Object

Pred premiestnením na výpočtov seba , je to najlepšie pre ilustráciu problému , ktorý sa vytvoril nový typ enum riešiť . Zvážte nasledujúce triedy :

public class Kalendár {
int denVtýdnu
GO

public static final int pondelok = 0
GO
public static final int utorok = 1
GO
public static final int stredu = 2
GO
....

void setDayOfWeek ( dátum int ) { ... }
}

Táto trieda uchováva deň v týždni pomocou sady zoznamu konštánt s celočíselnými hodnotami 0-7 , z ktorých každá zodpovedá na iný deň , a očakáva sa , že ďalší vývojári používajúci tejto triedy sa používať tieto konštanty pri použití triedy . Nič však vynucuje to . Ostatné triedy by mohol ignorovať konštanty , používať vlastné konštanty ( od nedele snáď ) omylom , alebo dokonca , v dôsledku chyby , odovzdať \\ " 8 \\ " ako deň v týždni, čo potenciálne umožňuje bug šíriť ďalej , než by mal . Je to tiež predovšetkým uninformative pri ladení , pretože hodnota \\ " denVtýdnu \\ " , bude vytlačená na konzole alebo debugger iba ako celé číslo , ktoré musia byť vzhliadol v zdrojovom kóde . Vymenované typy sú navrhnuté tak , aby riešenie všetkých týchto problémov . Nasledujúci je rovnaká trieda , pomocou enum typ namiesto sady zoznamu konštánt :

public class Kalendár {
public enum Day { pondelok , utorok , streda , štvrtok , piatok , sobota , nedeľa
}
Day denVtýdnu

void setDayOfWeek ( deň D ) { ... }
}

Kódu vyššie , okrem toho , že čistejšie a čitateľnejší , rieši všetky problémy uvedené vyššie s vymenovanými konštánt . Klienti sú teraz nútení používať iba vymenované samotných hodnôt , a Debuggers sa zobrazí názov vyčíslené hodnotou a nie celé číslo . Okrem toho , výpočty majú rad ďalších výhod . Napríklad , môžu byť použité s novým pre - každý funkciu slučky , ktorý bol pridaný v Jave 1.5.0 . Trieda kalendár môže zahŕňať spôsob takhle :

prázdnych printDays ( ) {
pre ( Deň D : Day.values ​​( ) ) {
System.out.println ( " Dnes je " + d )
GO
}
}

Táto metóda bude iterovat všetky dni a tlačiť svoje mená .

Výpočty sú triedy v ich vlastnej pravý , čo znamená , že môžu mať svoje vlastné metódy a konštruktory . Zvážte nasledujúci výpočet , ktorý ukladá postavy v hre , čo sa stručným popisom tohto charakteru :

public enum postavy {
MYSTERIOUS_MAN ( " Vysoký , tmavý a pekný . " ) ,
MYSTERIOUS_WOMAN ( " na sebe červené šaty . " ) ,
protagonista ( " temperamentný a hrdinské . " ) ,
antagonista ( " Vytekanie zlo . " ) ;

String popis
GO

charakteru ( String opis ) {
this.description = popis
GO
}
}

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené