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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° JavaΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 31

Автор Н.А. Вязовик

com.sun.image.codec.jpeg

org.omg.CORBA.ORBPackage

oracle.jdbc.driver.OracleDriver


Однако, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Java-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π±Ρ‹Π»ΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ доступны Π½Π° Internet-сайтС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π» ΠΈΠΌ имя. Π‘ΠΊΠΎΡ€Π΅Π΅ Π±Ρ‹Π»Π° сдСлана ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ систСмой ΠΈΠΌΠ΅Π½ вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ для имСнования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΈΠΌΠ΅Π½

ΠžΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости объявлСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ элСмСнта языка называСтся Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΡ‚ΠΊΡƒΠ΄Π° допускаСтся ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ этому элСмСнту ΠΏΠΎ простому ΠΈΠΌΠ΅Π½ΠΈ.

ΠŸΡ€ΠΈ рассмотрСнии ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта языка Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π΅Π³ΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС.

ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости доступного ΠΏΠ°ΠΊΠ΅Ρ‚Π° – вся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ любой класс ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ доступный ΠΏΠ°ΠΊΠ΅Ρ‚. Однако Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ составному ΠΈΠΌΠ΅Π½ΠΈ. К ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ java.lang Π½ΠΈ ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ мСста нСльзя ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΊ просто lang.

ΠžΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΡΠ²Π»ΡΡŽΡ‚ΡΡ всС объявлСния Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня Π² этом ΠΌΠΎΠ΄ΡƒΠ»Π΅ компиляции.

ΠžΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости Ρ‚ΠΈΠΏΠ° (класса ΠΈΠ»ΠΈ интСрфСйса) Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня являСтся ΠΏΠ°ΠΊΠ΅Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ объявлСн. Из Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² доступ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π»ΠΈΠ±ΠΎ ΠΏΠΎ составному ΠΈΠΌΠ΅Π½ΠΈ, Π»ΠΈΠ±ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ выраТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ компилятору Π²ΠΎΡΡΠΎΠ·Π΄Π°Ρ‚ΡŒ составноС имя.

ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости элСмСнтов классов ΠΈΠ»ΠΈ интСрфСйсов – это всС Ρ‚Π΅Π»ΠΎ Ρ‚ΠΈΠΏΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹. Если ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ этим элСмСнтам происходит ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ составным ΠΈΠΌΠ΅Π½Π΅ΠΌ. Имя ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ составлСно ΠΈΠ· простого ΠΈΠ»ΠΈ составного ΠΈΠΌΠ΅Π½ΠΈ Ρ‚ΠΈΠΏΠ°, ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов super ΠΈΠ»ΠΈ this, послС Ρ‡Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ указываСтся простоС имя элСмСнта.

АргумСнты ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, конструктора ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ошибок Π²ΠΈΠ΄Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ этих конструкций ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ доступны ΠΈΠ·Π²Π½Π΅.

ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… начинаСтся с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΈΡ… ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Π±Π»ΠΎΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΠΎΠ»Π΅ΠΉ Ρ‚ΠΈΠΏΠΎΠ², Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ явно.


int x;

for (int i=0; i<10; i++) {

int t=5+i;

}

// здСсь пСрСмСнная t ΡƒΠΆΠ΅ нСдоступна,

// Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±Π»ΠΎΠΊ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½Π° Π±Ρ‹Π»Π°

// объявлСна, ΡƒΠΆΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½, Π° пСрСмСнная

// x Π΅Ρ‰Π΅ нСдоступна, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ° Π½Π΅ Π±Ρ‹Π»Π°

// ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π°


ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚, ΠΊΠΎΠ³Π΄Π° происходит ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ областСй видимости ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΈΠΌΠ΅Π½ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… конструкций языка.

"Π—Π°Ρ‚Π΅Π½ΡΡŽΡ‰Π΅Π΅" объявлСниС (Shadowing)

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

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ пСрСкрытия ΠΈΠΌΠ΅Π½ ΠΏΠΎΠ»Π΅ΠΉ класса ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


class Human {

int age;

// возраст

int getAge() {

return age;

}

void setAge(int age) {

age=age;

// ???

}

}


Π’ классС Human (Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ) объявлСно ΠΏΠΎΠ»Π΅ age (возраст). Π£Π΄ΠΎΠ±Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ setAge(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ возраста для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. Π’ΠΏΠΎΠ»Π½Π΅ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setAge() ΠΎΠ΄ΠΈΠ½ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ age (вСдь Π² качСствС этого Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ возраста). ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setAge() Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ age=age, Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС подразумСвая ΠΏΠΎΠ»Π΅ класса, Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ - ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ хотя с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния компилятора это коррСктная конструкция, ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠΎΡΠ»Π°Ρ‚ΡŒΡΡ Π½Π° Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄Π½ΠΎ имя успСхом Π½Π΅ увСнчаСтся. Надо Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ошибки ΡΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ ΠΏΠΎΡ€ΠΎΠΉ Π΄Π°ΠΆΠ΅ Ρƒ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, рассмотрим, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° конфликтная ситуация. Π•ΡΡ‚ΡŒ Π΄Π²Π° элСмСнта языка – Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ»Π΅ класса, области видимости ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ»ΠΈΡΡŒ. ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости поля класса большС, ΠΎΠ½Π° ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ всС Ρ‚Π΅Π»ΠΎ класса, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сам ΠΌΠ΅Ρ‚ΠΎΠ΄. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС Π²Π½ΡƒΡ‚Ρ€ΠΈ области пСрСсСчСния ΠΏΠΎ простому ΠΈΠΌΠ΅Π½ΠΈ доступСн ΠΈΠΌΠ΅Π½Π½ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π° ΠΏΠΎΠ»Π΅ класса "затСняСтся" (shadowing) объявлСниСм ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

ΠžΡΡ‚Π°Π΅Ρ‚ΡΡ вопрос, ΠΊΠ°ΠΊ Π² Ρ‚Π°ΠΊΠΎΠΉ ситуации всС ΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ полю класса. Если доступ ΠΏΠΎ простому ΠΈΠΌΠ΅Π½ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½, Π½Π°Π΄ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ составным. Π—Π΄Π΅ΡΡŒ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ всСго ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово this (ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ…). Π‘Π»ΠΎΠ²ΠΎ this ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ΠΎ примСняСтся. Если Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ setAge() Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса Human ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² этом ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ слово this, Ρ‚ΠΎ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ссылкой Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:


class Human {

int age;

// возраст

void setAge(int age) {

this.age=age;

// Π²Π΅Ρ€Π½ΠΎΠ΅ присвоСниС!

}

}


ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΈΠΌΠ΅Π½, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠΉ ΠΈΠ·-Π·Π° Π·Π°Ρ‚Π΅Π½ΡΡŽΡ‰Π΅Π³ΠΎ объявлСния, довольно Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова this ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… конструкций языка, Π² зависимости ΠΎΡ‚ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π². НаибольшСй ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ компилятор Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ сообщаСт ΠΎ Ρ‚Π°ΠΊΠΈΡ… ситуациях, ΠΈ самоС слоТноС – Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСстирования ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ просмотра ΠΊΠΎΠ΄Π°.

"Π—Π°ΡΠ»ΠΎΠ½ΡΡŽΡ‰Π΅Π΅" объявлСниС (Obscuring)

ΠœΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ситуация, ΠΊΠΎΠ³Π΄Π° простоС имя ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ рассмотрСно ΠΊΠ°ΠΊ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‚ΠΈΠΏΠ° ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ частично ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ случай:


import java.awt.*;

public class Obscuring {

static Point Test = new Point(3,2);

public static void main (String s[]) {

print(Test.x);

}

}

class Test {

static int x = -5;

}


Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ main() простоС имя Test ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ имя поля класса Obscuring ΠΈ имя Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, находящСгося Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅,– Test. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого ΠΈΠΌΠ΅Π½ΠΈ происходит ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ полю x, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΈ Π² классС java.awt.Point ΠΈ Test.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° станСт 3, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ пСрСмСнная ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ высокий ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Ρ‚ΠΈΠΏ ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ высокий ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚, Ρ‡Π΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ доступному Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… условиях Ρ‚ΠΈΠΏΡƒ ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ, Ссли Π΅ΡΡ‚ΡŒ объявлСниС ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΠ°, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»Π΅Π΅ высокий ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚. Π’Π°ΠΊΠΎΠ΅ объявлСниС называСтся "Π·Π°ΡΠ»ΠΎΠ½ΡΡŽΡ‰ΠΈΠΌ" (obscuring).

Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° скорСС всСго Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚, Ссли ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ соглашСниям ΠΏΠΎ имСнованию элСмСнтов языка Java.

БоглашСния по имСнованию

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄, написанный Π½Π° Java, Π±Ρ‹Π»ΠΎ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π³ΠΎ Π°Π²Ρ‚ΠΎΡ€Ρƒ, Π½ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ для устранСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈΠΌΠ΅Π½, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ соглашСния ΠΏΠΎ имСнованию элСмСнтов языка Java. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ классы Java Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΈΠΌ Ρ‚Π°ΠΌ, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

БоглашСния Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… конструкций:


* ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹;

* Ρ‚ΠΈΠΏΡ‹ (классы ΠΈ интСрфСйсы);

* ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹;

* поля;

* поля-константы;

* Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Π΄Ρ€.


Рассмотрим ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

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

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ситуации "Π·Π°ΡΠ»ΠΎΠ½ΡΡŽΡ‰Π΅Π³ΠΎ" объявлСния (obscuring) ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ имя локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΏΠΎΠ²Π»Π΅Ρ‡Π΅Ρ‚ Π·Π° собой Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄Π΅. Π‘Π»ΡƒΡ‡Π°ΠΉ ΠΆΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ‚ΠΈΠΏΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ, согласно ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ имСнования Ρ‚ΠΈΠΏΠΎΠ².

ИмСна Ρ‚ΠΈΠΏΠΎΠ² Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с большой Π±ΡƒΠΊΠ²Ρ‹ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… слов, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ слово Ρ‚Π°ΠΊΠΆΠ΅ начинаСтся с большой Π±ΡƒΠΊΠ²Ρ‹. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π°Π΄ΠΎ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Π½Π° Π±Ρ‹Π»ΠΈ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, "говорящими".

ИмСна классов, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ:


Human

HighGreenOak

ArrayIndexOutOfBoundsException


(ПослСдний ΠΏΡ€ΠΈΠΌΠ΅Ρ€ – ошибка, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΈ использовании индСкса массива, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ допустимого.)

Аналогично Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π° интСрфСйсов, хотя ΠΎΠ½ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ английский суффикс "able":


Runnable

Serializable

Cloneable


ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° "Π·Π°ΡΠ»ΠΎΠ½ΡΡŽΡ‰Π΅Π³ΠΎ" объявлСния (obscuring) для Ρ‚ΠΈΠΏΠΎΠ² встрСчаСтся Ρ€Π΅Π΄ΠΊΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²) Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с малСнькой Π±ΡƒΠΊΠ²Ρ‹, Π° Ρ‚ΠΈΠΏΠΎΠ² – с большой.

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