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

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

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

Для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ программирования Π² Java прСдусмотрСн класс ΠΈ интСрфСйс .

Π’ ΠΊΠ°ΠΊΠΈΡ… случаях слСдуСт ΠΎΡ‚Π΄Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡŽ класса Thread Π½Π°Π΄ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ интСрфСйса Runnable?

ΠŸΠΎΠΊΠ°ΠΆΠΈΡ‚Π΅, ΠΊΠ°ΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° j oin () ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° MyThrd.

ΠŸΠΎΠΊΠ°ΠΆΠΈΡ‚Π΅, ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊΠ° MyThrd Π½Π° Ρ‚Ρ€ΠΈ уровня Π²Ρ‹ΡˆΠ΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°.

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π² объявлСнии ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово synchronized?

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ wait () ΠΈ notify () слуТат для __ .

ВнСситС Π² класс TickTock измСнСния для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ настоящСго ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠŸΠ΅Ρ€Π²ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ сСкунды Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° экран слова "Tick", Π° Π²Ρ‚ΠΎΡ€ΡƒΡŽ β€” Π²Ρ‹Π²ΠΎΠ΄ слова "Tock". Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, сообщСниС "Tick-Tock" Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΉ сСкундС отсчитываСмого Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. (ВрСмя ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ контСкстов ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ.)

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π² Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° Java Π½Π΅ слСдуСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ suspend(), resume() ΠΈ stop()?

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ· класса Thread ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ имя ΠΏΠΎΡ‚ΠΎΠΊΠ°?

КакоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ isAlive () ?

ΠŸΠΎΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСдства синхронизации Π² классС Queue, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΌ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ…. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ класс Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π“Π»Π°Π²Π° 12 ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ, Π°Π²Ρ‚ΠΎΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°, статичСский ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΈ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ ΠΈ понятия

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ пСрСчислСниях

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ свойств пСрСчислСний, основанных Π½Π° классах

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² values () ΠΈ valueof () ΠΊ пСрСчислСниям

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ пСрСчислСний с конструкторами, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ экзСмпляра ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ordinal () ΠΈ compareTo (), наслСдуСмых пСрСчислСниями ΠΎΡ‚ класса Enum

ИспользованиС ΠΎΠ±ΠΎΠ»ΠΎΡ‡Π΅ΠΊ Ρ‚ΠΈΠΏΠΎΠ² Java

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ полоТСния ΠΎΠ± Π°Π²Ρ‚ΠΎΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅ ΠΈ автораспаковкС

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ…

Π£ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π² выраТСниях

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ статичСского ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ полоТСния ΠΎΠ± аннотациях

Π’ этой Π³Π»Π°Π²Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΠΎΠ²Ρ‹Π΅ языковыС срСдства Java: пСрСчислинСния, Π°Π²Ρ‚ΠΎΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°, статичСский ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΈ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ. И хотя Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ вошло Π² ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ описаниС Java, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ… Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ возмоТности ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния этого языка программирования. Π’Π°ΠΊ, пСрСчислСния ΠΈ Π°Π²Ρ‚ΠΎΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ Π΄Π°Π²Π½ΠΎ Π½Π°Π·Ρ€Π΅Π²ΡˆΠΈΠΌ потрСбностям, статичСский ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ статичСских Ρ‡Π»Π΅Π½ΠΎΠ² класса, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ Π²ΠΈΠ΄Ρ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π² исходный Ρ„Π°ΠΉΠ». А сообща всС эти срСдства ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ насущных Π·Π°Π΄Π°Ρ‡ программирования. Π’ этой Π³Π»Π°Π²Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² Java.ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ

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

Π’ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ Π²ΠΈΠ΄Π΅ пСрСчислСниС прСдставляСт собой список ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… констант, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ пСрСчислимого Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ лишь значСния, содСрТащиСся Π² спискС. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, пСрСчислСния ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ строго фиксированный ряд допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Π’ повсСднСвной ΠΆΠΈΠ·Π½ΠΈ пСрСчислСния Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ довольно часто. НапримСр, ΠΊ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ отнСсти ряд ΠΌΠΎΠ½Π΅Ρ‚, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² странС. А мСсяцы Π³ΠΎΠ΄Π° ΠΈ Π΄Π½ΠΈ Π½Π΅Π΄Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΠΏΠΎ названиям.

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния программирования пСрСчислСния ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° трСбуСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ряд Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΡ… ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ элСмСнтов. НапримСр, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ пСрСчислСния ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ΄ΠΎΠ² состояния (ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅, ошибка, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ). ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ρ‚Π°ΠΊΠΈΠ΅ значСния ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ констант Ρ‚ΠΈΠΏΠ° final, Π½ΠΎ пСрСчислСния ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ структурированный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ полоТСния ΠΎ пСрСчислСниях

Для создания пСрСчислСния слуТит ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово enum. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ простого пСрСчислСния Ρ€Π°Π·Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² транспортных срСдств.// ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΎΠ² транспортных срСдств,enum Transport { CAR, TRUCK, AIRPLANE, TRAIN, BOAT}

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ CAR, TRUCK ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ константами пСрСчислимого Ρ‚ΠΈΠΏΠ°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… автоматичСски нСявно ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ (public), статичСский (static) Ρ‡Π»Π΅Π½ пСрСчислСния Transport. Π’ΠΈΠΏ этих констант соотвСтствуСт Ρ‚ΠΈΠΏΡƒ пСрСчислСния (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС β€” Transport). Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Java ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ константы Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ самотипизированными (приставка β€œΡΠ°ΠΌΠΎβ€ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² качСствС Ρ‚ΠΈΠΏΠ° константы принимаСтся Ρ‚ΠΈΠΏ пСрСчислСния).

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ² пСрСчислСниС, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Но, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ пСрСчислСниС опрСдСляСтся ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ класса, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° enum с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° new нСльзя. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ пСрСчислимого Ρ‚ΠΈΠΏΠ° создаСтся ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ простого Ρ‚ΠΈΠΏΠ°. НапримСр, для объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ tp упомянутого Π²Ρ‹ΡˆΠ΅ пСрСчислимого Ρ‚ΠΈΠΏΠ° Transport слуТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:Transport tp;

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ tp относится ΠΊ Ρ‚ΠΈΠΏΡƒ Transport, ΠΈ поэтому Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² Π΄Π°Π½Π½ΠΎΠΌ пСрСчислСнии. НапримСр, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС ΠΊΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ tp присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ AIRPLANE:tp = Transport.AIRPLANE;

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ AIRPLANE ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ опрСдСляСтся ΠΊΠ°ΠΊ относящийся ΠΊ Ρ‚ΠΈΠΏΡƒ Transport.

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ равСнства констант пСрСчислимого Ρ‚ΠΈΠΏΠ° слуТит ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ сравнСния =. НапримСр, Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ строкС ΠΊΠΎΠ΄Π° содСрТимоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ tp сравниваСтся с константой TRAIN,if(tp == Transport.TRAIN) // ...

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΠΌΡ‹Π΅ значСния ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ switch. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π² вСтвях case этого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ константы Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ самого пСрСчислимого Ρ‚ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎ ΠΈ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ switch. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° составлСн ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:// ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ пСрСчислСния для управлСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ switch,switch(tp) {case CAR: // ...case TRUCK: // ...

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π² вСтвях case ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ константы Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ опрСдСлСния ΠΈΠΌΠ΅Π½ΠΈ Ρ‚ΠΈΠΏΠ°. НапримСр, вмСсто Transport. TRUCK ΡƒΠΊΠ°Π·Π°Π½ΠΎ просто TRUCK. Π­Ρ‚ΠΎ допустимо ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ пСрСчислимый Ρ‚ΠΈΠΏ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ switch нСявно опрСдСляСт Ρ‚ΠΈΠΏ констант Π² вСтвях case. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ссли ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ константы явно, ΠΏΡ€ΠΈ компиляции Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка.

ΠŸΡ€ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ константы пСрСчислимого Ρ‚ΠΈΠΏΠ°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° println (), выводится Π΅Π΅ имя. Π’Π°ΠΊ, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° отобразится имя BOAT:System.out.println(Transport.BOAT);

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ всС особСнности примСнСния пСрСчислСния Transport.// ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ примСнСния пСрСчислСния Transport.// ОбъявлСниС пСрСчислСния.enum Transport {CAR, TRUCK, AIRPLANE, TRAIN, BOAT}class EnumDemo { public static void main(String args[]) { // ОбъявлСниС ссылки Π½Π° пСрСчислСниС Transport. Transport tp; // ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ tp константы AIRPLANE. tp = Transport.AIRPLANE; // вывСсти пСрСчислимоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ System.out.println("Value of tp: " + tp) ; System.out.println(); tp = Transport.TRAIN; // ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° равСнства Π΄Π²ΡƒΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° Transport. if(tp == Transport.TRAIN) // ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΄Π²Π° пСрСчислимых значСния System.out.println("tp contains TRAIN.\n"); // ИспользованиС пСрСчислСния для управлСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ switch. switch(tp) { case CAR: System.out.println("A car carries people."); break; case TRUCK: System.out.println("A truck carries freight."); break; case AIRPLANE: System.out.println("An airplane flies."); break; case TRAIN: System.out.println("A train runs on rails."); break; case BOAT: System.put.println("A boat sails on water."); break; } }}