Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Java: руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… (Π›ΠŸ)Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 91

Автор Π¨ΠΈΠ»Π΄Ρ‚ Π“Π΅Ρ€Π±Π΅Ρ€Ρ‚

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:Value of tp: AIRPLANEtp contains TRAIN.A train runs on rails.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π΅ΠΌΡ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ИмСна констант Π² пСрСчислСнии Transport ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ прописными Π±ΡƒΠΊΠ²Π°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ… называСтся CAR, Π° Π½Π΅ саг). Но это Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. НС сущСствуСт Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° использованиС рСгистра символов Π² ΠΈΠΌΠ΅Π½Π°Ρ… констант пСрСчислимого Ρ‚ΠΈΠΏΠ°. Но ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ константы пСрСчислимого Ρ‚ΠΈΠΏΠ°, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΊ final, ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ прописными Π±ΡƒΠΊΠ²Π°ΠΌΠΈ, Ρ‚ΠΎ ΠΈ ΠΈΠΌΠ΅Π½Π° констант пСрСчислимого Ρ‚ΠΈΠΏΠ°, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ прописными Π±ΡƒΠΊΠ²Π°ΠΌΠΈ. И хотя Π½Π° этот счСт ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния, Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, прСдставлСнных Π² этой ΠΊΠ½ΠΈΠ³Π΅, для констант пСрСчислимого Ρ‚ΠΈΠΏΠ° Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ ΠΈΠΌΠ΅Π½Π°, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌΡ‹Π΅ прописными Π±ΡƒΠΊΠ²Π°ΠΌΠΈ.ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ Π² Java относятся ΠΊ Ρ‚ΠΈΠΏΠ°ΠΌ классов

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ созданиС ΠΈ использованиС пСрСчислСний, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π΄Π°ΡŽΡ‚ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ прСдставлСния ΠΎΠ±ΠΎ всСх ΠΈΡ… возмоТностях. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования пСрСчислСния Π² Java Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏΡ‹ классов. И хотя ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° enum с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° new нСльзя, Π²ΠΎ всСм ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ пСрСчислСния Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ классов. Π’Π°ΠΊΠΎΠΉ способ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ пСрСчислСний надСляСт ΠΈΡ… Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΌΠΈ возмоТностями, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ нСдостиТимыми Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках. Π­Ρ‚ΠΎ, Π² частности, позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ конструкторы пСрСчислСний, Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² Π½ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Π΄Π°ΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ пСрСчислСния, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ интСрфСйсы.ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ values () ΠΈ vaJueOf ()

Π£ всСх пСрСчислСний ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π΄Π²Π° ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: values () ΠΈ valueOf ().

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΡ… объявлСния.public static пСрСчислимый_Ρ‚ΠΈΠΏ[] values()public static пСрСчислимый_Ρ‚ΠΈΠΏ valueOf(String str)

ΠœΠ΅Ρ‚ΠΎΠ΄ values () Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив, содСрТащий константы пСрСчислимого Ρ‚ΠΈΠΏΠ°, Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ valueOf () β€” константу Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ соотвСтствуСт символьной строкС str, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ этому ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π’ ΠΎΠ±ΠΎΠΈΡ… чаях пСрСчислимый_Ρ‚ΠΈΠΏ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ пСрСчислСния. Π’Π°ΠΊ, Ссли Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ рассмотрСнным Π²Ρ‹ΡˆΠ΅ пСрСчислСниСм Transport, Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Transport .valueOf ("TRAIN") Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ TRAIN Ρ‚ΠΈΠΏΠ° Transport. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² values () ΠΈ valueOf().// ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ встроСнных Π² пСрСчислСниС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².// ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² транспорта,enum Transport {CAR, TRUCK, AIRPLANE, TRAIN, BOAT}class EnumDemo2 { public static void main(String args[]) { Transport tp; System.out.println("Here are all Transport constants"); // Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ values() // ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ массива констант Ρ‚ΠΈΠΏΠ° Transport. Transport allTransports[] = Transport.values(); for(Transport t : allTransports) System.out.println(t); System.out.println(); // Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ valueOf() // ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ константы ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ AIRPLANE. tp = Transport.valueOf("AIRPLANE"); System.out.println("tp contains " + tp); }}

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:Here are all Transport constantsCARTRUCKAIRPLANETRAINBOATtp contains AIRPLANE

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° массива констант, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° values (), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ for-each Ρ†ΠΈΠΊΠ»Π° for. Π Π°Π΄ΠΈ большСй наглядности Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² Π΅Π³ΠΎ ΠΊΠΎΠ΄Π΅ создаСтся пСрСмСнная allTransports, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ присваиваСтся ссылка Π½Π° массив констант пСрСчислимого Ρ‚ΠΈΠΏΠ°. Но Π΄Π΅Π»Π°Ρ‚ΡŒ это совсСм Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π° Ρ†ΠΈΠΊΠ» for ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅. Π’ этом случаС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ allTransports ΠΎΡ‚ΠΏΠ°Π΄Π°Π΅Ρ‚.for(Transport t : Transport.values ()) System.out.println(t);

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΈΠΌΠ΅Π½ΠΈ AIRPLANE, Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° valueOf ():tp = Transport.valueOf("AIRPLANE");

Как пояснялось Π²Ρ‹ΡˆΠ΅, ΠΌΠ΅Ρ‚ΠΎΠ΄ valueOf () Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пСрСчислимого Ρ‚ΠΈΠΏΠ°, связанноС с ΠΈΠΌΠ΅Π½Π΅ΠΌ константы, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ пСрСдаСтся Π² Π²ΠΈΠ΄Π΅ символьной строки ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра ΠΈ пСрСчислСния

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ каТдая константа пСрСчислимого Ρ‚ΠΈΠΏΠ° являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ этого ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°, Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π² пСрСчислСнии ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ конструкторы, ввСсти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра. Если ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° пСрСчислимого Ρ‚ΠΈΠΏΠ° enum конструктор, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ создании ΠΊΠ°ΠΆΠ΄ΠΎΠΉ константы этого Ρ‚ΠΈΠΏΠ°. А каТдая константа пСрСчислимого Ρ‚ΠΈΠΏΠ° позволяСт Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ любой ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² пСрСчислСнии. И Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ константы пСрСчислимого Ρ‚ΠΈΠΏΠ° имССтся собствСнная копия любой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ экзСмпляра, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π² пСрСчислСнии. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с Π½ΠΎΠ²ΠΎΠΉ вСрсиСй пСрСчислСния Transport, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ конструктора, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ экзСмпляра ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Благодаря ΠΈΠΌ появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ пСрСдвиТСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… транспортных срСдств.// ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ конструктора, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ экзСмпляра ΠΈ// ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² пСрСчислСнии,enum Transport { // ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ значСния констант. CAR(65), TRUCK(55), AIRPLANE(600), TRAIN(70), BOAT(22); // ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ экзСмпляра. private int speed; // обычная ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ транспортного срСдства // ОбъявлСниС конструктора. Transport(int s) { speed = s; } // ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. int getSpeed() { return speed; }}class EnumDemo3 { public static void main(String args[]) { Transport tp; // ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ самолСта // Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ опрСдСляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° getSpeed(). System.out.println("Typical speed for an airplane is " + Transport.AIRPLANE.getSpeed() + " miles per hour.\n"); // ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ всС Π²ΠΈΠ΄Ρ‹ транспорта ΠΈ скорости ΠΈΡ… пСрСдвиТСния System.out.println("All Transport speeds: "); for(Transport t : Transport.values()) System.out.println(t + " typical speed is " + t.getSpeedO + " miles per hour."); }}

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:Typical speed for an airplane is 600 miles per hour.All Transport speeds:CAR typical speed is 65 miles per hour.TRUCK typical speed is 55 miles per hour.AIRPLANE typical speed is 600 miles per hour.TRAIN typical speed is 70 miles per hour.BOAT typical speed is 22 miles per hour.

Π’ эту Π²Π΅Ρ€ΡΠΈΡŽ пСрСчислСния Transport внСсСн ряд Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, появилась пСрСмСнная экзСмпляра speed, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для хранСния скорости пСрСдвиТСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° транспортных срСдств. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π² пСрСчислСниС Transport Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ конструктор, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ пСрСдаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ скорости. И Π²-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, Π² это пСрСчислСниС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ getSpeedO , Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ speed, Ρ‚.Π΅. ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ пСрСдвиТСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ транспортного срСдства.

Когда пСрСмСнная tp ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ main (), конструктор Transport () автоматичСски вызываСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ константы. АргумСнты, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ конструктору, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² скобках послС ΠΈΠΌΠ΅Π½ΠΈ константы, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.CAR(65), TRUCK(55), AIRPLANE(600), TRAIN(70), BOAT(22);

ЧисловыС значСния, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ конструктору Transport () Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° s, ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ speed. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ список констант пСрСчислимого Ρ‚ΠΈΠΏΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой. ПослСднСй Π² этом спискС ΡƒΠΊΠ°Π·Π°Π½Π° константа BOAT. Π’ΠΎΡ‡ΠΊΠ° с запятой трСбуСтся Π² Ρ‚ΠΎΠΌ случаС, Ссли, ΠΏΠΎΠΌΠΈΠΌΠΎ констант, Π² пСрСчислСнии ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‡Π»Π΅Π½Ρ‹.

Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ константы пСрСчислимого Ρ‚ΠΈΠΏΠ° имССтся собствСнная копия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ speed, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ пСрСдвиТСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ транспортного срСдства, Π²Ρ‹Π·Π²Π°Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ getSpeed (). НапримСр, Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ main () ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ самолСта опрСдСляСтся ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅:Transport.AIRPLANE.getSpeed()

Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ транспортного срСдства опрСдСляСтся ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° констант пСрСчислимого Ρ‚ΠΈΠΏΠ° Π² Ρ†ΠΈΠΊΠ»Π΅ for. А ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚Π°ΠΊΠΎΠΉ константы имССтся своя копия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ speed, Ρ‚ΠΎ значСния скорости, связанныС с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ константами, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. Π­Ρ‚ΠΎ довольно эффСктивный ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ пСрСчислСний, Π½ΠΎ ΠΎΠ½ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли пСрСчислСния Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Π²ΠΈΠ΄Π΅ классов, ΠΊΠ°ΠΊ это сдСлано Π² Java.