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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «Ѐилософия Java3Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 4

Автор Π‘Ρ€ΡŽΡ ЭккСль

Бкрытая рСализация

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ΠΎΠ² ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° создатСлСй классов (Ρ‚Π΅, ΠΊΡ‚ΠΎ создаСт Π½ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…) ΠΈ программистов-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² (ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ классов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² своих прилоТСниях). ЦСль Π²Ρ‚ΠΎΡ€Ρ‹Ρ… β€” ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС классов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ЦСль создатСля класса β€” ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ класс, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ программисту-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ, ΠΈ прячущий всС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅. ΠŸΠΎΡ‡Π΅ΠΌΡƒ? ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½Π΅ смоТСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ скрытым частям, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ классов оставляСт Π·Π° собой Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ, Π½Π΅ опасаясь, Ρ‡Ρ‚ΠΎ это ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈΡ‚. Β«ΠŸΠΎΡ‚Π°Π΅Π½Π½Π°ΡΒ» Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈ самая «хрупкая» Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΡ€Ρ‚ΠΈΡ‚ΡŒ нСостороТный ΠΈΠ»ΠΈ нСсвСдущий программист-ΠΊΠ»ΠΈΠ΅Π½Ρ‚, поэтому сокрытиС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сокращаСт количСство ошибок Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ….

Π’ Π»ΡŽΠ±Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ… Π²Π°ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹, Π½Π΅ пСрСступаСмыС Π½ΠΈΠΊΠ΅ΠΌ ΠΈΠ· участников. Боздавая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π²Ρ‹ устанавливаСтС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ с программистом-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ. Он являСтся Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ программистом, ΠΊΠ°ΠΊ ΠΈ Π²Ρ‹, Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°ΡˆΡƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для создания прилоТСния (Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ высокого уровня). Если ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ доступ ΠΊΠΎ всСм Ρ‡Π»Π΅Π½Π°ΠΌ класса ΠΊΠΎΠΌΡƒ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, программист-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ смоТСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с классом всС, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ заблагорассудится, ΠΈ Π²Ρ‹ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ смоТСтС Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Β«ΠΈΠ³Ρ€Π°Ρ‚ΡŒ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΒ». Π”Π°ΠΆΠ΅ Ссли Π²Π°ΠΌ впослСдствии понадобится ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ‡Π»Π΅Π½Π°ΠΌ вашСго класса, Π±Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° контроля доступа это ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ВсС строСниС класса ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ для всСх ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΡ….

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ для ограничСния доступа являСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΡƒΠ±Π΅Ρ€Π΅Ρ‡ΡŒ Β«Ρ…Ρ€ΡƒΠΏΠΊΠΈΠ΅Β» Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΎΡ‚ программиста-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° β€” части Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Β«ΠΊΡƒΡ…Π½ΠΈΒ», Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ интСрфСйса, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ свои Π·Π°Π΄Π°Ρ‡ΠΈ. На самом Π΄Π΅Π»Π΅ это ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ β€” ΠΎΠ½ΠΈ сразу увидят, Ρ‡Ρ‚ΠΎ для Π½ΠΈΡ… Π²Π°ΠΆΠ½ΠΎ, Π° Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Вторая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° появлСния ограничСния доступа β€” стрСмлСниС ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ класса, Π½Π΅ бСспокоясь ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° программистС-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ класс Β«Π½Π° ΡΠΊΠΎΡ€ΡƒΡŽ Ρ€ΡƒΠΊΡƒΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Если Π²Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΈ Π·Π°Ρ‰ΠΈΡ‚ΠΈΠ»ΠΈ интСрфСйс ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π±ΡƒΠ΄Π΅Ρ‚ совсСм нСслоТно.

Java ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Ρ€ΠΈ явных ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слова, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ доступа: public, private ΠΈ protected. Π˜Ρ… ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‡Π΅Π½ΡŒ просты. Π­Ρ‚ΠΈ спСцификаторы доступа ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, ΠΊΡ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π° Π½ΠΈΠΌΠΈ опрСдСлСния. Π‘Π»ΠΎΠ²ΠΎ public ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ опрСдСлСния доступны всСм. Наоборот, слово private Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π° Π½ΠΈΠΌ прСдлоТСния доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŽ Ρ‚ΠΈΠΏΠ°, Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π’Π΅Ρ€ΠΌΠΈΠ½ private β€” «крСпостная стСна» ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π°ΠΌΠΈ ΠΈ программистом-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ. Если ΠΊΡ‚ΠΎ-Ρ‚ΠΎ попытаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ private-Ρ‡Π»Π΅Π½Ρ‹, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ остановлСн ошибкой компиляции. Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ protected дСйствуСт схоТС с private, Π·Π° ΠΎΠ΄Π½ΠΈΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ β€” ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ классы ΠΈΠΌΠ΅ΡŽΡ‚ доступ ΠΊ Ρ‡Π»Π΅Π½Π°ΠΌ, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΌ protected, Π½ΠΎ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ доступса ΠΊ private-Ρ‡Π»Π΅Π½Π°ΠΌ (наслСдованиС ΠΌΡ‹ вскорС рассмотрим).

Π’ Java Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ доступ Β«ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽΒ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ отсутствии ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΠ· пСрСчислСнных спСцификаторов. Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½ΠΎΠ³Π΄Π° называСтся доступом Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚Π° (package access), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ классы ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ друТСствСнныС Ρ‡Π»Π΅Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… классов ΠΈΠ· своСго ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π½ΠΎ Π·Π° Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Ρ‚Π΅ ΠΆΠ΅ друТСствСнныС Ρ‡Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π°ΡŽΡ‚ статус private.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ ΠΈ протСстированный класс Π΄ΠΎΠ»ΠΆΠ΅Π½ (Π² ΠΈΠ΄Π΅Π°Π»Π΅) ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°. Однако оказываСтся, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ этой Ρ†Π΅Π»ΠΈ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅, Ρ‡Π΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚; для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² трСбуСтся ΠΎΠΏΡ‹Ρ‚ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ сути Π΄Π΅Π»Π°. Но ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ вас получится Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ конструкция, ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ просто Π½Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠœΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ использованиС ΠΊΠΎΠ΄Π° β€” ΠΎΠ΄Π½ΠΎ ΠΈΠ· самых Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΠΈΡ… прСимущСств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков.

ΠŸΡ€ΠΎΡ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ, нСпосрСдствСнно создавая Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ этого класса Π²Π½ΡƒΡ‚Ρ€ΡŒ Π½ΠΎΠ²ΠΎΠ³ΠΎ класса. ΠœΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ это Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Новый класс ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ любоС количСство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², Π² любом сочСтании, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для достиТСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ составляСм Π½ΠΎΠ²Ρ‹ΠΉ класс ΠΈΠ· ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… классов, этот способ называСтся ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ (Ссли композиция выполняСтся динамичСски, ΠΎΠ½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ имСнуСтся Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ). ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ связью Ρ‚ΠΈΠΏΠ° Β«ΠΈΠΌΠ΅Π΅Ρ‚Β» (has-a), ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ Β«Ρƒ автомобиля Π΅ΡΡ‚ΡŒ Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΡŒΒ».

ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ

Π”Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΡŒ

(На UML-Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°Ρ… композиция обозначаСтся Π·Π°ΠΊΡ€Π°ΡˆΠ΅Π½Π½Ρ‹ΠΌ Ρ€ΠΎΠΌΠ±ΠΎΠΌ. Π― нСсколько ΡƒΠΏΡ€ΠΎΡ‰Ρƒ этот Ρ„ΠΎΡ€ΠΌΠ°Ρ‚: ΠΎΡΡ‚Π°Π²Π»ΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ линию, Π±Π΅Π· Ρ€ΠΎΠΌΠ±Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ связь1.)

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

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

НаслСдованиС

Π‘Π°ΠΌΠ° ΠΏΠΎ сСбС идСя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊΡ€Π°ΠΉΠ½Π΅ ΡƒΠ΄ΠΎΠ±Π½Π°. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ позволяСт ΡΠΎΠ²ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎΠ΅ понятиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠΉ области ΠΏΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ Π΅Π³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Ρƒ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Π­Ρ‚ΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ языка программирования, описываСмыС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова class.

Но ΡΠΎΠ³Π»Π°ΡΠΈΡ‚Π΅ΡΡŒ, Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΠ±ΠΈΠ΄Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ класс, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ΄Π΅Π»Ρ‹Π²Π°Ρ‚ΡŒ всю Ρ€Π°Π±ΠΎΡ‚Ρƒ Π·Π°Π½ΠΎΠ²ΠΎ для ΠΏΠΎΡ…ΠΎΠΆΠ΅Π³ΠΎ класса. Π“ΠΎΡ€Π°Π·Π΄ΠΎ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π΅Π΅ Π²Π·ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ класс, Β«ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ» Π΅Π³ΠΎ, Π° Π·Π°Ρ‚Π΅ΠΌ внСсти добавлСния ΠΈ обновлСния Π² ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ»ΠΎΠ½. Π­Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ наслСдования, с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ β€” Ссли ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ класс (Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ-классом, супСрклассом ΠΈΠ»ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ классом) измСняСтся, Ρ‚ΠΎ всС измСнСния ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΈ Π½Π° Π΅Π³ΠΎ Β«ΠΊΠ»ΠΎΠ½Π΅Β» (Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ классом, унаслСдованным классом, подклассом ΠΈΠ»ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ классом).

(Π‘Ρ‚Ρ€Π΅Π»ΠΊΠ° Π½Π° UML-Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π° ΠΎΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ классу. Как Π²Ρ‹ вскорС ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ большС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса.)

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

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

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” классичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с гСомСтричСскими Ρ„ΠΈΠ³ΡƒΡ€Π°ΠΌΠΈ. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ здСсь являСтся Β«Ρ„ΠΈΠ³ΡƒΡ€Π°Β», ΠΈ каТдая Ρ„ΠΈΠ³ΡƒΡ€Π° ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€, Ρ†Π²Π΅Ρ‚, располоТСниС ΠΈ Ρ‚. ΠΏ. ΠšΠ°ΠΆΠ΄ΡƒΡŽ Ρ„ΠΈΠ³ΡƒΡ€Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ, ΡΡ‚Π΅Ρ€Π΅Ρ‚ΡŒ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ, Π·Π°ΠΊΡ€Π°ΡΠΈΡ‚ΡŒ Ρ€ Ρ‚. Π΄. Π”Π°Π»Π΅Π΅ производятся (Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ) ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ разновидности Ρ„ΠΈΠ³ΡƒΡ€: ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚, Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ ΠΈ Ρ‚. ΠΏ., каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ свои Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ характСристики ΠΈ Ρ‡Π΅Ρ€Ρ‚Ρ‹ повСдСния. НапримСр, для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„ΠΈΠ³ΡƒΡ€ поддСрТиваСтся опСрация Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ отобраТСния. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‡Π΅Ρ€Ρ‚Ρ‹ повСдСния ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ Π² случаС вычислСния ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹. Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ Ρ‚ΠΈΠΏΠΎΠ² Π²ΠΎΠΏΠ»ΠΎΡ‰Π°Π΅Ρ‚ ΠΊΠ°ΠΊ схоТиС, Ρ‚Π°ΠΊ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ свойства Ρ„ΠΈΠ³ΡƒΡ€.