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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 50

Автор Π‘Π΅Ρ€Ρ‚Ρ€Π°Π½ ΠœΠ΅ΠΉΠ΅Ρ€

Аналогично АВД, класс - это Ρ‚ΠΈΠΏ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ мноТСство Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… экзСмплярами (instances) класса. ЭкзСмпляры АВД ΡΠ²Π»ΡΡŽΡ‚ΡΡ абстракциями - элСмСнтами матСматичСского мноТСства. ЭкзСмпляр класса ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ - это структура Π΄Π°Π½Π½Ρ‹Ρ…, размСщаСмая Π² памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈ обрабатываСмая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.

НапримСр, Ссли ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ класс STACK, взяв Π·Π° основу ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ АВД ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎΠ³ΠΎ прСдставлСния, Ρ‚ΠΎ экзСмплярами класса Π±ΡƒΠ΄ΡƒΡ‚ структуры Π΄Π°Π½Π½Ρ‹Ρ… - ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ стСки. Π”Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ являСтся класс POINT, ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΎΡ‡ΠΊΡƒ Π½Π° плоскости. Если для прСдставлСния Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π° Π΄Π΅ΠΊΠ°Ρ€Ρ‚ΠΎΠ²Π° систСма ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚, Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ экзСмпляр POINT прСдставляСт собой запись с полями x, y - абсциссой Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ Π΅Π΅ ΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΠΉ.

Π’Π΅Ρ€ΠΌΠΈΠ½ "ΠΎΠ±ΡŠΠ΅ΠΊΡ‚" появляСтся ΠΊΠ°ΠΊ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ опрСдСлСния "класса". ΠžΠ±ΡŠΠ΅ΠΊΡ‚ это просто экзСмпляр Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ класса.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ тСксты, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡƒΡŽ систСму, содСрТат опрСдСлСния классов. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

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

УстранСниС Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹

Класс - это модСль, Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ - экзСмпляр Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π­Ρ‚Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚ мСсто вСсьма Π½Π΅Π±Ρ€Π΅ΠΆΠ½ΠΎΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ с этими понятиями, - ΡΠΌΠ΅ΡˆΠΈΠ²Π°ΡŽΡ‚ΡΡ понятиС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ концСпция ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Ρ†Π΅Π»ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΠ΅Ρ‚ класс. Π£ этой ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ Π΄Π²Π° источника. Один - Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΠ·-Π·Π° ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ толкования Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° "ΠΎΠ±ΡŠΠ΅ΠΊΡ‚" Π² СстСствСнном языкС. Π”Ρ€ΡƒΠ³ΠΎΠΉ источник Π½Π΅Π΄ΠΎΡ€Π°Π·ΡƒΠΌΠ΅Π½ΠΈΠΉ связан с мСтаклассами, - с ситуациями, ΠΊΠΎΠ³Π΄Π° классы сами Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π² Ρ€ΠΎΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ транслятор ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ языка, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ классы языка ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ трансляции.

НСкоторыС ОО-языки, особСнно Smalltalk, для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· рассмотрСнной ситуации ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ понятиС мСтакласс (metaclass). ΠœΠ΅Ρ‚Π°ΠΊΠ»Π°ΡΡ - это класс, экзСмпляры ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ сами ΡΠ²Π»ΡΡŽΡ‚ΡΡ классами. Π’ Ρ€ΠΎΠΌΠ°Π½Π΅ "Имя Π ΠΎΠ·Ρ‹", ΠΎΡ‚Ρ€Ρ‹Π²ΠΎΠΊ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² эпиграфС ΠΊ Π΄Π°Π½Π½ΠΎΠΉ Π»Π΅ΠΊΡ†ΠΈΠΈ, встрСчаСтся понятиС "Π·Π½Π°ΠΊΠΈ Π·Π½Π°ΠΊΠΎΠ²". По сути, это ΠΈ Π΅ΡΡ‚ΡŒ Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ мСтаклассов.

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ввСдСния мСтаклассов, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ создаваСмых ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ большС, Ρ‡Π΅ΠΌ Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ Ρ€Π΅ΡˆΠ°ΡŽΡ‚. Π’ частности, Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ мСтаклассов создаСт трудности ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ статичСской ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ², Ρ‡Ρ‚ΠΎ являСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ условиСм Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ ПО. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ мСтаклассов ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Ρ€ΡƒΠ³ΠΈΡ… срСдств:

[x]. ΠœΠ΅Ρ‚Π°ΠΊΠ»Π°ΡΡΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для задания свойств, доступных ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΈΠ»ΠΈ всСм классам. Π’ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ, создавая сСмСйство классов, наслСдников ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΠΊΠ° - класса ANY, содСрТащСго объявлСния ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… свойств.

[x]. НСкоторыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹, скорСС, для класса Π² Ρ†Π΅Π»ΠΎΠΌ, Π° Π½Π΅ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΅Π³ΠΎ экзСмпляров, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ мСтакласса. Но этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ ΠΎΠ½ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстны. ΠžΠΏΡΡ‚ΡŒ-Ρ‚Π°ΠΊΠΈ, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ввСсти ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ класса ANY, ΠΈΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… языковых конструкций. НаиболСС ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ являСтся конструктор класса, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

[x]. ΠœΠ΅Ρ‚Π°ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ классС - ΠΈΠΌΠ΅Π½ΠΈ, спискС свойств, спискС Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈ Ρ‚.Π΄. Но ΠΈ здСсь Π½Π΅Ρ‚ нСобходимости Π² мСтаклассС. Достаточно Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΉ класс E_CLASS, экзСмпляры ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ классы ΠΈ ΠΈΡ… свойства. ΠŸΡ€ΠΈ создании Ρ‚Π°ΠΊΠΎΠ³ΠΎ экзСмпляра Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ класс C ΠΈ Π΄Π°Π»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот экзСмпляр для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ классС C, ΠΎΠ±Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ E_CLASS.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Π°Ρ концСпция мСтакласса. ΠŸΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ мСтаклассов Π² Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ языкС ΠΈΠ»ΠΈ срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π΅ ΠΎΠΏΡ€Π°Π²Π΄Ρ‹Π²Π°Π΅Ρ‚ смСшСниС понятий ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ ΠΈΡ… экзСмпляров - классов ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Роль классов

Π—Π°Ρ‚Ρ€Π°Ρ‚ΠΈΠ² Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° устранСниС абсурдных, Π½ΠΎ распространСнных ΠΈ Π²Ρ€Π΅Π΄Π½Ρ‹Ρ… Π·Π°Π±Π»ΡƒΠΆΠ΄Π΅Π½ΠΈΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹Ρ… свойств классов ΠΈ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, Π² частности, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ΠΈ ΡΡ‚ΠΎΠ»ΡŒ Π²Π°ΠΆΠ½Ρ‹ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.

Для понимания ОО-ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ясно ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ классы Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎ появлСния ОО-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ всСгда Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹. Класс ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ являСтся ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ ΠΈ Ρ‚ΠΈΠΏΠΎΠΌ.

ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Ρ‚ΠΈΠΏΡ‹

БрСдства, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ПО, - языки программирования, проСктирования, спСцификаций, графичСскиС систСмы ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для Π°Π½Π°Π»ΠΈΠ·Π°, - всСгда Π²ΠΊΠ»ΡŽΡ‡Π°Π»ΠΈ Π² сСбя ΠΊΠ°ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ примСнСния ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΈ систСму Ρ‚ΠΈΠΏΠΎΠ².

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

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

Класс ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ

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

ΠœΠΎΡ‰ΡŒ ОО-ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ, слСдствиС этого отоТдСствлСния. НаслСдованиС, Π² частности, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ понято Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ рассмотрСнии Π΅Π³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Ρ‚Π°ΠΊ ΠΈ, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, уточнСния спСциализации Ρ‚ΠΈΠΏΠ°.

Как практичСски ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π΅ ΡΡ‚ΠΎΠ»ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ? ΠŸΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ дискуссия ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ позволят ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° этот вопрос.

Унифицированная систСма Ρ‚ΠΈΠΏΠΎΠ²

Π’Π°ΠΆΠ½Ρ‹ΠΌ аспСктом ОО-ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° являСтся простота ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ систСмы Ρ‚ΠΈΠΏΠΎΠ², которая строится Π½Π° основС Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ являСтся экзСмпляром Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ класса

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° составныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, опрСдСляСмыС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ структуры Π΄Π°Π½Π½Ρ‹Ρ…, содСрТащиС нСсколько ΠΏΠΎΠ»Π΅ΠΉ), Π½ΠΎ ΠΈ Π½Π° Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ - Ρ†Π΅Π»Ρ‹Π΅ ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа, Π±ΡƒΠ»Π΅Π²Ρ‹ значСния ΠΈ символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ экзСмпляры ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Ρ… классов (INTEGER, REAL, DOUBLE, BOOLEAN, CHARACTER).

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