java enum java enumeration tutorial with examples
Овај водич ће детаљно објаснити класу и конструктор Јава Енум. Научићемо како се користи Енум кроз разне примере Јава програмирања:
Ово је посебна класа чије ће објашњење бити детаљно дато. Даће се увид у класу Јава Енум заједно са листом метода које она подржава.
Довољно програма који имплементирају концепте Јава енум и нека често постављана питања која се могу поставити током интервјуа укључени су у овај водич за ваше лакше разумевање.
=> Погледајте овде да бисте видели серију Јава тренинга за све.
Шта ћете научити:
Јава Енумератион
Јава набрајање није ништа друго до списак варијабли инстанце, метода или конструктора. То су групе константи. Концепт пописивања уведен је у ЈДК5. Подразумевано својство сваке константе набрајања је јавно, статично и коначно.
енум Кључна реч
Набрајање се креира помоћу кључне речи под називом „ енум ”.
Доље је дата синтакса помоћу које можемо створити набрајање.
Синтакса:
енум енумератед_типе_наме
{
енумератор1, енумератор2,… енумераторН;
}
Белешка: енум се може дефинисати само унутар класе највишег нивоа или интерфејса или у статичком контексту. Не би требало да буде унутар методе.
Пример набрајања
У овом примеру ћемо иницијализовати четири пописивача, тј. Пик, срце, дијамант и клуб који припадају побројаном типу који се назива карте.
Затим ћемо покушати да одштампамо сваког од ових пописивача.
/* * created an enumeration called cards * with four enumerators. */ enum cards { spade, club, heart, diamond; } public class A { public static void main(String() args) { /* * stored each of the enumerators in the * reference variables a1,a2,a3,a4 respectively. * note that the new keyword was not used here */ cards a1 = cards.spade; cards a2 = cards.club; cards a3 = cards.heart; cards a4 = cards.diamond; System.out.println('Enumerators are: '+ a1 + ',' + a2 + ',' + a3 + ',' + a4); } }
Излаз:
Енум Цласс
Једна ствар коју сте сигурно приметили у горњем примеру (погледајте коментаре) је да нисмо користили „Нова кључна реч“ док инстанцирање. Иако набрајања дефинишу класу Енум и конструкторе, они не користе нову кључну реч.
Пописиваче можемо користити на исти начин као и примитив. Енум је генеричка класа и све енумерације наслеђују Енум.
Синтакса:
// Е је тип набрајања.
разред Енум
Како се користи Енум у Јави
Погледајмо како да користимо Енум у различитим сценаријима уз помоћ Јава примера:
Унутар А класе
Енум се може декларисати унутар или изван (пример кључне речи енум) класе, али не и унутар методе. Овде ћемо показати како се енум декларише унутар класе.
У доњем примеру , креирали смо набрајање унутар класе, а затим смо преузели вредност или пописивач уз помоћ референтне променљиве а1.
public class A { /* * created an enumeration called cards * with four enumerators. */ enum cards { spade, club, heart, diamond; } public static void main(String() args) { /* * stored each of the enumerators in the * reference variables a1. * note that the new keyword was not used here */ cards a1 = cards.heart; System.out.println('Card is: '+ a1); } }
Излаз:
Итерирање набрајања кроз петље
Овде ћемо разговарати о томе како можемо проћи кроз енум. Прогласили смо пописивање са четири пописивача (изван класе). Затим смо иницијализовали а за сваку петљу (унутар класе) и покушали да дохватимо вредност пописивача.
/* * created an enumeration called games * with four enumerators. */ enum games { ludo, Chess, Badminton, Cricket; } public class A { public static void main(String() args) { /* * used forEach loop and stored the value in 'index' * and printed the value of each enumerator */ System.out.println('Using for each loop'); for (games index:games.values()) { System.out.println(index); } } }
Излаз:
како отворити бин датотеке у андроид-у
У случају да јесте
У доњем програму креирали смо набрајање са три различита пописивача, а затим смо пописивач ускладиштили у референтну променљиву за једног од наведених пописивача.
Тада смо започели проверу услова иф, где смо имплементирали два услова наведена са ИЛИ, тако да ако је један од тих услова испуњен, исписат ће изјаву наведену у услову иф.
У супротном, исписат ће изјаву наведену у стању елсе.
/* * created an enumeration called players * with three enumerators. */ enum players { sachin, virat, dhoni; } public class A { public static void main(String() args) { /* * stored enumerator in reference variable a1 for * contant dhoni */ players a1 = players.dhoni; /* * Started if statement with OR condition. * If any of these conditions are met then it will * print the statement specified inside if statement */ if(a1 == players.virat || a1 == players.sachin) { System.out.println('Sachin and Virat are greatest batsmen'); } /* * if none of the above condition is met then it will * print the below specified statement */ else { System.out.println('Dhoni is the best Captain'); } } }
Излаз:
У Изјави прекидача
У доњем програму креирали смо набрајање са четири пописивача. Затим смо један од пописивача сачували у референтној променљивој. Након тога, иницијализовали смо наредбу Свитцх и проверили сваки од ових пописивача.
По појави тог одређеног пописивача, исписат ће изјаву наведену у одређеном случају.
/* * created an enumeration called players * with four enumerators. */ enum players { sachin, dravid, virat, dhoni; } public class A { public static void main(String() args) { /* * stored enumerator in reference variable a1 for * contant dravid */ players a1 = players.dravid; /* * Started Switch Statement and if the element * matches with a1 then it will print the statement * specified in the case */ switch(a1) { // does not match case sachin: System.out.println('Sachin is best bastman ever'); break; // matches case dravid: System.out.println('Dravid is the best Test Batsman'); break; // does not match case virat: System.out.println('Virat is modern great'); break; // does not match case dhoni: System.out.println('Dhoni is the best captain ever'); break; } } }
Излаз:
Енум поље и методе
Енум Фиелд
Овај одељак ће детаљно објаснити поље набрајања. Можемо додати поља Јава набрајању и сваки пописивач добије та поља. Вредност поља треба доделити конструктору набрајања.
У доњој синтакси можемо видети да је набрајање дефинисано са три пописивача. Поред сваког пописивача дефинисали смо поље типа инт. ( На пример. - (3), (2) и (1) респективно).
Ово сумира да Јава енум има конструктор који узима инт. Овај конструктор поставља поље инт. Када је пописивач дефинисан, тада се та вредност инт (наведена за тај пописивач) преноси конструктору.
Синтакса:
public enum A { /* * calls a contructor with value * defined on the respective enumerator */ Enumerator1(3), Enumerator2(2), Enumerator3(1) /* * semicolon needed for the last enumerator * if there is a method following it. */ ; private final int constant; private A(int constant) { this.constant = constant; } }
Белешка: На пример, у пољу Енум, погледајте одељак „ Енум Цонструцтор ”.
Енум методе
# 1) име ()
публиц финал Стринг наме () - Враћа име позивне константе (непромењено или непромењено).
# 2) једнако ()
публиц финал боолеан екуалс (Објецт отхер) - Враћа тачно ако се обј и позивни објекат односе на исту константу.
# 3) тоСтринг
публиц Стринг тоСтринг () - Враћа име константе која позива. Не подудара се нужно са именом коришћеним у декларацији пописа.
# 4) клон
заштићени завршни клон објекта ()
баца ЦлонеНотСуппортедЕкцептион - То значи да ће енум избацити изузетак када се покуша клонирати.
# 5) хасхЦоде ()
публиц финал инт хасхЦоде () - Враћа хасх код за објект који позива.
# 6) финализе ()
заштићен финал воид финализе () - класа енум не може имати финализоване методе. Нема повратне вредности.
# 7) цомпареТо ()
публиц финал инт цомпареТо (Е обј) - Ово упоређује набрајање са наведеним објектом обј. Враћа негативно ако је објекат мањи од наведеног објекта. Враћа позитивно ако је овај објекат већи од наведеног објекта обј и враћа нулу ако је наведени обј једнак овом објекту.
# 8) гетДецларингЦласс
јавна коначна класа гетДецларингЦласс () - Враћа тип набрајања (познат и као класа декларисања енум) чији је члан константа позива.
# 9) ординал (), валуес () и валуеОф ()
Све ове методе су део пакета јава.ланг.Енум . Метода ординал () враћа редослед константе набрајања на основу индекса константе.
Метода валуес () враћа све вредности присутне у набрајању. Метода валуеОф (Стринг) враћа константу набрајања улазног Стринга. Ако се наведени низ не подудара са константом, бациће ИллегалАргументЕкцептион.
Доље је дат пример програмирања где смо користили исти пример (као пример кључне речи енум) и применили концепт све три методе.
/* * created an enumeration called cards * with four enumerators. */ enum cards { spade, club, heart, diamond; } public class A { public static void main(String() args) { /* * created an array arr() which will store the * value of the constants/enumerators declared in the enumeration */ cards arr() = cards.values(); /* * used forEach loop and stored the value in 'type' * and printed the value as well as index with the help of * ordinal() method */ for (cards type:arr) { System.out.println(type + ' occurs at ' + type.ordinal()); } /* * passed heart as an input String which matches with the * constant declared in 'cards' */ System.out.println(cards.valueOf('heart')); } }
Излаз:
Енум Цонструцтор
Енум (јер је уједно и класа) подржава конструктор за прослеђивање података током креирања пописивача или познат и као енум константе.
Главно својство енум конструктора је да су они привате или привате-пацкаге. То значи да су им доступни у оквиру класе или у пакету.
Погледајмо пример у наставку. Овде смо користили и методу и конструктор. Пре свега, креирали смо набрајање названо „играчи“ које има пет пописивача и поље.
Затим имамо конструктор и метод који ће вратити број трчања које је постигао сваки играч или пописивач или енум константа.
Након тога имамо главну класу у којој смо користили сваку петљу са методом валуес () за чување и понављање сваког пописивача. Такође, позвали смо методу за број трчања које је постигао сваки играч.
/* * Created enumeration players with the field. * Declared a constructor and a method to return * the number of runs scored by the players. */ enum players { dravid(10889), sachin(18426), ganguly(11363), virat(11867), dhoni(10773) ; private int runs; /* * Created enumeration players with the field. * Declared a constructor and a method to return * the number of runs scored by the players. */ enum players { dravid(10889), sachin(18426), ganguly(11363), virat(11867), dhoni(10773) ; private int runs; players(int r) { runs = r; } int getRuns() { return runs; } } /* * Used values() method to get the enumerators and a for each loop * to get the number of runs scored by each player */ public class A { public static void main(String args()) { for (players a : players.values()) System.out.println(a + ' has scored ' + a.getRuns() + ' ODI runs'); } }
Излаз:
Често постављана питања
П # 1) Која је разлика између Итератора и Енумерације у Јави?
Одговор: Доље је дата разлика између Итератора и Енумерације.
Итератор | Набрајање |
---|---|
То је генерички курсор који се користи за понављање елемената и применљив је на све класе колекције. | То није генерички курсор, јер је применљив само на старе класе као што је Енум. Дозволу за читање само за час колекције. |
Неке од метода су хасНект (), нект () за итерацију. | Неке методе су хасМореЕлементс (), нектЕлемент () за итерацију. |
Елемент у колекцији можемо уклонити помоћу итератора. | Не можемо уклонити елемент из колекције помоћу Енумератион-а јер има само дозволу за читање. |
П # 2) Како Енум подржава наслеђивање?
Одговор: Афтералл Енум је такође класа у Јави, тако да мора да подржава наслеђивање које је основни принцип ООПС-а. Сва набрајања проширују класу јава.ланг.Енум. Како класа може проширити само једног родитеља, класа Енум не проширује ниједну другу.
ТоСтринг () који је део класе Енум (објашњено у одељку Енум метода) је замењен у класи јава.ланг.Енум.
Закључак
У овом упутству смо разговарали о набрајању, набрајању, класи Јава Енум и кључној речи енум са одговарајућим примерима и објашњењима где год је то потребно. Такође, дали смо увид у важне методе повезане са Енум класом са енум пољем.
Омогућен је увид у конструктор, енум са иф-елсе, свитцх и петље.
=> Посетите овде да бисте научили Јаву из нуле.
Препоручено читање
- Водич за класу Јава Сцаннер са примерима
- Јава Интегер и Јава БигИнтегер класа са примерима
- Водич за Јава Флоат са примерима програмирања
- Шта је Јава Вецтор | Водич за Јава векторску класу са примерима
- ТрееМап у Јави - Водич за примере Јава ТрееМап
- Јава двострука лекција са примерима програмирања
- Јава Арраи Цласс Туториал - јава.утил.Арраис Цласс са примерима
- Ц # концепти: конструктор, деструктор, статичка класа, структура и набрајање