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

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

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

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

Π”Π΅Ρ‚Π°Π»ΠΈ соглашСния ΠΎΠ± инфиксных ΠΈ прСфиксных опСрациях, Π² частности Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ², ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² [M 1992].

James McKim ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ» ΠΌΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° послСдний Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ соглашСния Result (использованиС для постусловий).

УпраТнСния

Π£7.1 POINT ΠΊΠ°ΠΊ абстрактный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ абстрактного Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… для описания Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° плоскости.

Π£7.2 Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ POINT

Π—Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ исходный тСкст класса POINT. Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ rotate (Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π²ΠΎΠΊΡ€ΡƒΠ³ Π½Π°Ρ‡Π°Π»Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ считаСтС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ.

Π£7.3 ΠŸΠΎΠ»ΡΡ€Π½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹

ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡˆΠΈΡ‚Π΅ класс POINT Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² качСствС Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ использовалось Π±Ρ‹ прСдставлСниС Ρ‚ΠΎΡ‡ΠΊΠΈ Π² полярных, Π° Π½Π΅ Π΄Π΅ΠΊΠ°Ρ€Ρ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°Ρ….

ЛСкция 8. ДинамичСскиС структуры: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

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

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

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

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ части ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ приниТаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ считаСтся, Ρ‡Ρ‚ΠΎ самоС Π²Π°ΠΆΠ½ΠΎΠ΅ - это Π°Π½Π°Π»ΠΈΠ·. Но Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ПО - это Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ. Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ часто являСтся ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ срСдством модСлирования. Помимо ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСм Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… областях.

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

Π’ процСссС выполнСния ОО-систСма создаСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ число ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния. Рассмотрим свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚?

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ смысл Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° "ΠΎΠ±ΡŠΠ΅ΠΊΡ‚". Полная ΡΡΠ½ΠΎΡΡ‚ΡŒ Π±Ρ‹Π»Π° внСсСна Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π»Π΅ΠΊΡ†ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ строгого опрСдСлСния (ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, см. Π»Π΅ΠΊΡ†ΠΈΡŽ 7):

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ - это экзСмпляр Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ класса

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

Π­Ρ‚ΠΎ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π² ΠΌΠΈΡ€Π΅ ОО-ПО. Но Π² повсСднСвном языкС Ρ‚Π΅Ρ€ΠΌΠΈΠ½ "ΠΎΠ±ΡŠΠ΅ΠΊΡ‚" ΠΈΠΌΠ΅Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ смысл. Π›ΡŽΠ±Π°Ρ программная систСма связана с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ внСшнСй систСмой, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ "ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹": Ρ‚ΠΎΡ‡ΠΊΠΈ, Π»ΠΈΠ½ΠΈΠΈ, повСрхности ΠΈ Ρ‚Π΅Π»Π° Π² графичСской систСмС; сотрудников ΠΈ ΠΈΡ… ΠΎΠΊΠ»Π°Π΄Ρ‹ Π² систСмС расчСта Π·Π°Ρ€Π°Π±ΠΎΡ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹ ΠΈ Ρ‚.Π΄. Π’ Ρ‚Π°ΠΊΠΈΡ… ситуациях, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ класс EMPLOYEE Π² систСмС расчСта Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Ρ‹, экзСмпляры ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΌΠΈ модСлями сотрудников.

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ слСдствиСм Π΄ΡƒΠ°Π»ΠΈΠ·ΠΌΠ° слова "ΠΎΠ±ΡŠΠ΅ΠΊΡ‚" являСтся Π΅ΡΡ‚Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠΎΡ‰ΡŒ ОО-ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, примСняСмого для Ρ†Π΅Π»Π΅ΠΉ модСлирования Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… систСм. Π­Ρ‚ΠΎ ΡƒΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΈ рассмотрСнии ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° ΠŸΡ€ΡΠΌΠΎΠ³ΠΎ ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ (direct mapping), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ, являСтся ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ проСктирования. ΠΠ΅ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ классы ΡΠ²Π»ΡΡŽΡ‚ΡΡ модСлями Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠΉ области, Π° экзСмпляры классов - модСлями Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². (Π‘ΠΌ. "ΠŸΡ€ΡΠΌΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅", лСкция 3)

Но Π½Π΅ стоит ΠΏΠ΅Ρ€Π΅ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ "Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ" слова "ΠΎΠ±ΡŠΠ΅ΠΊΡ‚". Π’ Π½Π°ΡƒΠΊΠ΅ ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅ сущСствуСт большой риск Π² заимствовании слов СстСствСнного языка ΠΈ придания ΠΈΠΌ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ смысла. Π’Π΅Ρ€ΠΌΠΈΠ½ "ΠΎΠ±ΡŠΠ΅ΠΊΡ‚" Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½ повсСднСвным смыслом, Ρ‡Ρ‚ΠΎ тСхничСскоС Π΅Π³ΠΎ использованиС ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ источником Π½Π΅Π΄ΠΎΡ€Π°Π·ΡƒΠΌΠ΅Π½ΠΈΠΉ. Π’ частности:

[x]. НС всС классы ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚ΠΈΠΏΠ°ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠΉ области. МногиС классы, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² интСрСсах проСктирования ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π²ΠΎΠΉΠ½ΠΈΠΊΠΎΠ² Π² ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ систСмС. ИмСнно эти классы Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ наибольшСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΡ… Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ всСго ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

[x]. НСкоторыС ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠΉ области СстСствСнно приводят ΠΊ классам, хотя Π² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠΉ области Π½Π΅ сущСствуСт Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² соотвСтствиС экзСмплярам этих классов. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ класс STATE, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ состояниС систСмы, ΠΈΠ»ΠΈ класс COMMAND. (Π‘ΠΌ. Π»Π΅ΠΊΡ†ΠΈΡŽ 20 ΠΈ Π»Π΅ΠΊΡ†ΠΈΡŽ 21 курса "ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ проСктирования")

Когда слово "ΠΎΠ±ΡŠΠ΅ΠΊΡ‚" ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² этой ΠΊΠ½ΠΈΠ³Π΅, Ρ‚ΠΎ ΠΈΠ· контСкста ясно, Π² ΠΎΠ±Ρ‰Π΅ΠΌ ΠΈΠ»ΠΈ тСхничСском смыслС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ этот Ρ‚Π΅Ρ€ΠΌΠΈΠ½. Π’ Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° эту Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡƒΡ‚ΠΎΡ‡Π½Π΅Π½ΠΈΠ΅ - ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ внСшний ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Базовая Ρ„ΠΎΡ€ΠΌΠ°

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ довольно простоС сущСство, Ссли извСстСн класс, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΠ½ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚.

ΠŸΡƒΡΡ‚ΡŒ O - ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. По ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ ΠΎΠ½ являСтся экзСмпляром Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ класса. Π’ΠΎΡ‡Π½Π΅Π΅, ΠΎΠ½ являСтся прямым экзСмпляром (direct instance) Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ C.

Π‘ ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ наслСдования O Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ³Π΄Π° косвСнным экзСмпляром Π΄Ρ€ΡƒΠ³ΠΈΡ… классов, - ΠΏΡ€Π΅Π΄ΠΊΠΎΠ² C. Π­Ρ‚ΠΎ Ρ‚Π΅ΠΌΠ° дальнСйшСго обсуТдСния; Π² Π΄Π°Π½Π½ΠΎΠΉ дискуссии достаточно понятия прямого экзСмпляра. Π’Π΅Π·Π΄Π΅, Π³Π΄Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π΅Π΄ΠΎΡ€Π°Π·ΡƒΠΌΠ΅Π½ΠΈΠΉ, слово "прямой" Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ.

Класс C называСтся ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΌ классом (generating class) ΠΈΠ»ΠΈ просто Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ (generator) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° O. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, C- ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ тСкст, Π° O - структура Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния, ΠΏΠΎΡΠ²Π»ΡΡŽΡ‰Π°ΡΡΡ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ рассмотрСнных Π½ΠΈΠΆΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π§Π°ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² C являСтся Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ. Π­Ρ‚ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Ρ„ΠΎΡ€ΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ собой просто Π½Π°Π±ΠΎΡ€ ΠΏΠΎΠ»Π΅ΠΉ, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚.

Рассмотрим класс POINT ΠΈΠ· ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π»Π΅ΠΊΡ†ΠΈΠΈ (ВСкст класса POINT см. Π² Π»Π΅ΠΊΡ†ΠΈΠΈ 7). Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:


class POINT feature

x, y: REAL

... ОбъявлСния ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ...

end


ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ опрСдСляСтся Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… классов. Π”Π°Π½Π½Ρ‹ΠΉ класс ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° x ΠΈ y Ρ‚ΠΈΠΏΠ° REAL, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π΅Π³ΠΎ экзСмпляр - это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с двумя полями, содСрТащими значСния этого Ρ‚ΠΈΠΏΠ°:

Рис. 8.1.  Π­ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ€ класса POINT

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ - Π½Π°Π±ΠΎΡ€ ΠΏΠΎΠ»Π΅ΠΉ - ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ смСТных ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ², содСрТащих ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ значСния. Π’Π½ΠΈΠ·Ρƒ курсивом Π² скобках даСтся имя класса (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС - POINT). ΠŸΡ€ΠΎΡ‚ΠΈΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ поля, Ρ‚ΠΎΠΆΠ΅ курсивом - ΠΈΠΌΠ΅Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² (x ΠΈ y). Иногда свСрху указываСтся имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (здСсь P_OBJ), Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ Π΄Π²ΠΎΠΉΠ½ΠΈΠΊΠ° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ тСкстС, Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΡ€ΠΈ обсуТдСнии.