Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС

Π£Ρ€ΠΎΠΊ β„–121. Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ *this

Обновл. 13 БСн 2021 |

Один ΠΈΠ· частых вопросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ Π·Π°Π΄Π°ΡŽΡ‚ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ классов: Β«ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° класса, ΠΊΠ°ΠΊ C++ отслСТиваСт Ρ‚ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΅Π³ΠΎ Π²Ρ‹Π·Π²Π°Π»?Β». ΠžΡ‚Π²Π΅Ρ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ C++ для этих Ρ†Π΅Π»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ скрытый ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ *this!

Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ *this

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ простой класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ конструктор ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ доступа. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, дСструктор здСсь Π½Π΅ Π½ΡƒΠΆΠ΅Π½, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ язык C++ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ послС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ-Ρ‡Π»Π΅Π½Π° ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку:

Π₯отя Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд каТСтся, Ρ‡Ρ‚ΠΎ Ρƒ нас здСсь Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ Ρƒ нас ΠΈΡ… Π΄Π²Π°! Π’ΠΎ врСмя компиляции строка another.setNumber(4); конвСртируСтся компилятором Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ это всСго лишь стандартный Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ another (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π½Π΅Π΅ Π±Ρ‹Π» ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈ находился ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ пСрСдаСтся ΠΏΠΎ адрСсу Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Но это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Π΄Π΅Π»Π°. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‚ΠΎ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π» Π΄Π²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°). Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄:

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ компилятором Π²:

ΠŸΡ€ΠΈ компиляции ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, компилятор нСявно добавляСт ΠΊ Π½Π΅ΠΌΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ *this. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ *this β€” это скрытый константный ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, содСрТащий адрСс ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ класса.

БоСдиняСм всё вмСстС:

Π₯ΠΎΡ€ΠΎΡˆΠ΅ΠΉ Π½ΠΎΠ²ΠΎΡΡ‚ΡŒΡŽ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ это всё происходит скрыто ΠΎΡ‚ нас (программистов), ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния, ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ Π»ΠΈ Π²Ρ‹, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Всё, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ β€” всС ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса ΠΈΠΌΠ΅ΡŽΡ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ *this, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, связанный с Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° класса.

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ *this всСгда ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ программисты ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡƒΡ‚Π°ΡŽΡ‚, сколько ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ *this сущСствуСт. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ *this, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° адрСс ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполняСтся опСрация, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

JavaScript: ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство ΠΏΠΎ классам

Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток, Π΄Ρ€ΡƒΠ·ΡŒΡ!

Π’ JavaScript ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ модСль ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ½ΠΎΠ³ΠΎ наслСдования: ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ наслСдуСт поля (свойства) ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°-ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ°.

Классов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Java ΠΈΠ»ΠΈ Swift Π² качСствС шаблонов ΠΈΠ»ΠΈ схСм для создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π² JavaScript Π½Π΅ сущСствуСт. Π’ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ½ΠΎΠΌ наслСдовании Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ½ΠΎΠ΅ наслСдованиС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ модСль наслСдования ΠΎΡ‚ классов. Для этого Π² ES6 Π±Ρ‹Π»ΠΎ прСдставлСно ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово class: синтаксичСский сахар для ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ½ΠΎΠ³ΠΎ наслСдования.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ научимся Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с классами: ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ классы, ΠΈΡ… частныС (ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅) ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ (ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅) поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ экзСмпляры.

1. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово class

Для опрСдСлСния класса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово class:

Π’Π°ΠΊΠΎΠΉ синтаксис называСтся объявлСниСм класса.

Класс ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ названия. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ выраТСния класса ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ класс ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

ΠšΠ»Π°ΡΡΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ экспорта ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ:

А Π²ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ экспорта:

ΠšΠ»Π°ΡΡΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для создания экзСмпляров. ЭкзСмпляр β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, содСрТащий Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π»ΠΎΠ³ΠΈΠΊΡƒ класса.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС

ЭкзСмпляры ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° new: instance = new Class().

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр класса User:

2. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ: constructor()

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ конструктор устанавливаСт Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля name:

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” name, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для установки Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния поля this.name.

this Π² конструкторС ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° создаваСмый экзСмпляр.

АргумСнт, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для создания экзСмпляра класса, становится ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π΅Π³ΠΎ конструктора:

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ name Π²Π½ΡƒΡ‚Ρ€ΠΈ конструктора ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ‘ΠŸΠ΅Ρ‡ΠΎΡ€ΠΈΠ½’.

Если Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ собствСнный конструктор, Π±ΡƒΠ΄Π΅Ρ‚ создан стандартный конструктор, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой ΠΏΡƒΡΡ‚ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π½Π΅ Π²Π»ΠΈΡΡŽΡ‰ΡƒΡŽ Π½Π° экзСмпляр.

3. Поля

Поля класса β€” это ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, содСрТащиС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Поля ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ Π½Π° Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹:

3.1. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ поля экзСмпляров класса

Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ this.name = name создаСт ΠΏΠΎΠ»Π΅ экзСмпляра name ΠΈ присваиваСт Π΅ΠΌΡƒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Доступ ΠΊ этому полю ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ аксСссора свойства:

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС name β€” ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ ΠΏΠΎΠ»Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΎ доступно Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ класса User.

ΠŸΡ€ΠΈ нСявном создании ΠΏΠΎΠ»Π΅ΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ конструктора, слоТно ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список всСх ΠΏΠΎΠ»Π΅ΠΉ. Для этого поля Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΈΠ· конструктора.

Π›ΡƒΡ‡ΡˆΠΈΠΌ способом являСтся явноС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ класса. НСваТно, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ конструктор, экзСмпляр всСгда ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠΎΠ»Π΅ΠΉ.

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ созданию ΠΏΠΎΠ»Π΅ΠΉ класса позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ поля Π²Π½ΡƒΡ‚Ρ€ΠΈ класса. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, здСсь ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ полям Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ значСния:

ИзмСним ΠΊΠΎΠ΄ класса User, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ² Π² Π½Π΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ ΠΏΠΎΠ»Π΅ name:

Π’Π°ΠΊΠΈΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ поля ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ наглядными, быстрый взгляд Π½Π° класс позволяСт ΠΏΠΎΠ½ΡΡ‚ΡŒ структуру Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Ρ….

Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΠ»Π΅ класса ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ опрСдСлСния:

На доступ ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ полям ΠΈ ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ значСния Ρ‚Π°ΠΊΠΈΠΌ полям ΠΌΠΎΠΆΠ½ΠΎ Π² конструкторС, ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… ΠΈ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ класса.

3.2. ЧастныС поля экзСмпляров класса

Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ позволяСт ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ класса. Π’ΠΎΡ‚, ΠΊΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ инкапсулированный класс, опираСтся Π½Π° ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ интСрфСйс, Π½Π΅ вдаваясь Π² подробности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ класса.

Π’Π°ΠΊΠΈΠ΅ классы ΠΏΡ€ΠΎΡ‰Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ способом ΡΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ являСтся использованиС частных ΠΏΠΎΠ»Π΅ΠΉ. Π’Π°ΠΊΠΈΠ΅ поля ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Ρ‹ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚. Π—Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ класса частныС поля нСдоступны.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ частным, ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ слСдуСт ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ символ #, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, #myPrivateField. ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Ρ‚Π°ΠΊΠΎΠΌΡƒ полю всСгда Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ прСфикс.

Π‘Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΠΎΠ»Π΅ name частным:

#name β€” частноС ΠΏΠΎΠ»Π΅. Доступ ΠΊ Π½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса User. Π­Ρ‚ΠΎ позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ getName().

Однако, ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ #name Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ класса User Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€ΠΎΡˆΠ΅Π½Π° синтаксичСская ошибка: SyntaxError: Private field ‘#name’ must be declared in an enclosing class.

3.3. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ статичСскиС поля

Π’ классС ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ поля, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ самому классу: статичСскиС поля. Π’Π°ΠΊΠΈΠ΅ поля ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для создания констант, хранящих Π½ΡƒΠΆΠ½ΡƒΡŽ классу ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

Для создания статичСских ΠΏΠΎΠ»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово static ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ поля: static myStaticField.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ type для опрСдСлСния Ρ‚ΠΈΠΏΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ: администратора ΠΈΠ»ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ. БтатичСскиС поля TYPE_ADMIN ΠΈ TYPE_REGULAR β€” константы для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ:

Для доступа ΠΊ статичСским полям слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ класса ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ свойства: User.TYPE_ADMIN ΠΈ User.TYPE_REGULAR.

3.4. ЧастныС статичСскиС поля

Иногда статичСскиС поля Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ класса. Для инкапсуляции Ρ‚Π°ΠΊΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡ… частными.

Для этого слСдуСт ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ поля ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ прСфикс #: static #myPrivateStaticFiled.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ количСство экзСмпляров класса User. Для сокрытия ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ количСствС экзСмпляров ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ частныС статичСскиС поля:

БтатичСскоС ΠΏΠΎΠ»Π΅ User.#MAX_INSTANCES опрСдСляСт допустимоС количСство экзСмпляров, Π° User.#instances β€” количСство созданных экзСмпляров.

Π­Ρ‚ΠΈ частныС статичСскиС поля доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса User. Ничто ΠΈΠ· внСшнСго ΠΌΠΈΡ€Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ограничСния: Π² этом Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· прСимущСств инкапсуляции.

ΠŸΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€.: Ссли ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ количСство экзСмпляров ΠΎΠ΄Π½ΠΈΠΌ, получится интСрСсная рСализация шаблона проСктирования Β«ΠžΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΠ°Β» (Singleton).

4. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹

Поля содСрТат Π΄Π°Π½Π½Ρ‹Π΅. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ обСспСчиваСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ функциями, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ класса: ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ.

JavaScript ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ экзСмпляров класса, Ρ‚Π°ΠΊ ΠΈ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

4.1. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ экзСмпляров класса

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ экзСмпляра класса ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ экзСмпляра ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ экзСмпляра, Π° Ρ‚Π°ΠΊΠΆΠ΅ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

НапримСр, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ getName(), Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ класса, Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π² конструкторС, this ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° создаваСмый экзСмпляр. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ this для получСния Π΄Π°Π½Π½Ρ‹Ρ… экзСмпляра: this.field, ΠΈΠ»ΠΈ для Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²: this.method().

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ nameContains(str), ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄:

nameContains(str) β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ класса User, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚. Он Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ экзСмпляра getName() для получСния ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ частным. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ частным слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прСфикс #.

Π‘Π΄Π΅Π»Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ getName() частным:

#getName() β€” частный ΠΌΠ΅Ρ‚ΠΎΠ΄. Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° nameContains(str) ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Π΅Π³ΠΎ Ρ‚Π°ΠΊ: this.#getName().

Π‘ΡƒΠ΄ΡƒΡ‡ΠΈ частным, ΠΌΠ΅Ρ‚ΠΎΠ΄ #getName() Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ класса User.

4.2. Π“Π΅Ρ‚Ρ‚Π΅Ρ€Ρ‹ ΠΈ сСттСры

Π“Π΅Ρ‚Ρ‚Π΅Ρ€Ρ‹ ΠΈ сСттСры β€” это аксСссоры ΠΈΠ»ΠΈ вычисляСмыС свойства. Π­Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ поля, Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅.

Π“Π΅Ρ‚Ρ‚Π΅Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для получСния Π΄Π°Π½Π½Ρ‹Ρ…, сСттСры β€” для ΠΈΡ… измСнСния.

Для установки Π·Π°ΠΏΡ€Π΅Ρ‚Π° Π½Π° присвоСниС полю name пустой строки, ΠΎΠ±Π΅Ρ€Π½Π΅ΠΌ частноС ΠΏΠΎΠ»Π΅ #nameValue Π² Π³Π΅Ρ‚Ρ‚Π΅Ρ€ ΠΈ сСттСр:

4.3. БтатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

БтатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ β€” это Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ самому классу. Они ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π»ΠΎΠ³ΠΈΠΊΡƒ класса, Π° Π½Π΅ Π΅Π³ΠΎ экзСмпляров.

Для создания статичСского ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово static ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: static myStaticMethod().

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со статичСскими ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, слСдуСт ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Π΄Π²ΡƒΡ… простых ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ…:

isNameTaken() β€” статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ частноС статичСскоС ΠΏΠΎΠ»Π΅ User.#takenNames для опрСдСлСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½.

БтатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ частными: static #myPrivateStaticMethod(). Π’Π°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса.

5. НаслСдованиС: extends

ΠšΠ»Π°ΡΡΡ‹ Π² JavaScript ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ наслСдованиС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова extends.

Π’ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ class Child extends Parent < >класс Child наслСдуСт ΠΎΡ‚ класса Parent конструктор, поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ класс ContentWriter, Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΠΉ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ класс User:

ContentWriter наслСдуСт ΠΎΡ‚ User конструктор, ΠΌΠ΅Ρ‚ΠΎΠ΄ getName() ΠΈ ΠΏΠΎΠ»Π΅ name. Π’ самом ContentWriter опрСдСляСтся Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ posts.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ частныС поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ классами.

5.1. Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ конструктор: super() Π² constructor()

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ конструктор Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса Π² Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΌ классС, слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ super(), Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ Π² конструкторС Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ класса.

ΠŸΡƒΡΡ‚ΡŒ конструктор ContentWriter Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ конструктор ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»Π΅ posts:

super(name) Π² Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΌ классС ContentWriter Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ конструктор Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса User.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΌ конструкторС ΠΏΠ΅Ρ€Π΅Π΄ использованиСм ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова this вызываСтся super(). Π’Ρ‹Π·ΠΎΠ² super() «привязываСт» Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ конструктор ΠΊ экзСмпляру.

5.2. Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ экзСмпляр: super Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ…

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ класса, слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ сокращСниС super:

getName() Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ класса ContentWriter Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ getName() Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса User.

Π­Ρ‚ΠΎ называСтся ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ super ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ для статичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса.

6. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°: instanceof

Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ object instanceof Class опрСдСляСт, являСтся Π»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ экзСмпляром ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ класса.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ instanceof ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΡ‡Π΅Π½: ΠΎΠ½ исслСдуСт всю Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ классов.

Π§Ρ‚ΠΎ Ссли Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ класс экзСмпляра? Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство constructor:

7. ΠšΠ»Π°ΡΡΡ‹ ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹

Надо ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ синтаксис классов β€” это Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ абстракция Π½Π°Π΄ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ½Ρ‹ΠΌ наслСдованиСм. Для использования классов Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ°ΠΌ.

Однако, классы ΡΠ²Π»ΡΡŽΡ‚ΡΡ лишь надстройкой Π½Π°Π΄ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ½Ρ‹ΠΌ наслСдованиСм. Π›ΡŽΠ±ΠΎΠΉ класс β€” это функция, ΡΠΎΠ·Π΄Π°ΡŽΡ‰Π°Ρ экзСмпляр ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ конструктора.

Π‘Π»Π΅Π΄ΡƒΡ‰ΠΈΠ΅ Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для понимания классов трСбуСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Π·Π½Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ½ΠΎΠ³ΠΎ наслСдования.

8. Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ возмоТностСй классов

ВозмоТности классов, прСдставлСнныС Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅, распрСдСлСны ΠΌΠ΅ΠΆΠ΄Ρƒ спСцификациСй ES6 ΠΈ прСдлоТСниями, находящимися Π½Π° Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ стадии рассмотрСния:

ΠŸΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€.: ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ Can I use ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° частных ΠΏΠΎΠ»Π΅ΠΉ классов Π½Π° сСгодняшний дСнь составляСт 68%.

9. Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠšΠ»Π°ΡΡΡ‹ Π² JavaScript ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ экзСмпляров с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструктора, опрСдСлСния ΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова static ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ самого класса.

НаслСдованиС рСализуСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова extends. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово super позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ классу ΠΈΠ· Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ.

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

Π’ соврСмСнном JavaScript классы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ повсСмСстно.

НадСюсь, ΡΡ‚Π°Ρ‚ΡŒΡ Π±Ρ‹Π»Π° Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ. Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΡŽ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠšΠ°Ρ€ΠΌΠ°Π½Π½Π°Ρ ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎ TypeScript. Π§Π°ΡΡ‚ΡŒ 7. ΠšΠ»Π°ΡΡΡ‹

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС

ΠœΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΡΠ΅Ρ€ΠΈΡŽ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° «ΠšΠ°Ρ€ΠΌΠ°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ TypeScript «.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: для большого удобства Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΊΠ½ΠΈΠ³Π° Π±Ρ‹Π»Π° ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π° Π² Π²ΠΈΠ΄Π΅ прогрСссивного Π²Π΅Π±-прилоТСния.

Π§Π»Π΅Π½Ρ‹ класса (class members)

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ самого простого класса β€” пустого:

Π’Π°ΠΊΠΎΠΉ класс бСсполСзСн, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅ΠΌΡƒ нСсколько Ρ‡Π»Π΅Π½ΠΎΠ².

Поля (fields)

ПолС β€” это ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ (ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ΅) ΠΈ доступноС для записи свойство класса:

Поля ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ автоматичСски Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ инстанцировании класса:

—strictPropertyInitialization

Настройка strictPropertyInitialization опрСдСляСт, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π»ΠΈ поля класса ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² конструкторС.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ поля классов Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² самом конструкторС. TS Π½Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π² конструкторС, для обнаруТСния ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΈ Ρ‡Π»Π΅Π½Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹.

readonly

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ (constructors)

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ класса ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² Π½ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ с аннотациями Ρ‚ΠΈΠΏΠ°, значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ:

Однако, ΠΌΠ΅ΠΆΠ΄Ρƒ сигнатурами конструктора класса ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сущСствуСт нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ:

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ‚ΠΈΠΏΠ° β€” это Π·Π°Π΄Π°Ρ‡Π° возлагаСтся Π½Π° внСшнСС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ класса, ΠΎ Ρ‡Π΅ΠΌ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° β€” всСгда возвращаСтся Ρ‚ΠΈΠΏ экзСмпляра класса

super

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ (methods)

ΠœΠ΅Ρ‚ΠΎΠ΄ β€” это свойство класса, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся функция. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с конструкторами:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, TS Π½Π΅ добавляСт ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ.

Π“Π΅Ρ‚Ρ‚Π΅Ρ€Ρ‹/сСттСры

ΠšΠ»Π°ΡΡΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ акцСссоры (вычисляСмыС свойства, accessors):

TS ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ», ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΡ…ΡΡ прСдполоТСния Ρ‚ΠΈΠΏΠΎΠ² Π² случаС с акцСссорами:

Если set отсутствуСт, свойство автоматичСски становится readonly

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‚ΠΈΠΏΠ° сСттСра прСдполагаСтся Π½Π° основС Ρ‚ΠΈΠΏΠ°, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ Π³Π΅Ρ‚Ρ‚Π΅Ρ€ΠΎΠΌ

Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ сСттСра ΠΈΠΌΠ΅Π΅Ρ‚ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ Ρ‚ΠΈΠΏΠ°, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с Ρ‚ΠΈΠΏΠΎΠΌ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌ Π³Π΅Ρ‚Ρ‚Π΅Ρ€ΠΎΠΌ

Π“Π΅Ρ‚Ρ‚Π΅Ρ€Ρ‹ ΠΈ сСттСры Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‡Π»Π΅Π½ΠΎΠ² (см. Π½ΠΈΠΆΠ΅)

Π‘ΠΈΠ³Π½Π°Ρ‚ΡƒΡ€Ρ‹ индСкса (index signatures)

ΠšΠ»Π°ΡΡΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ сигнатуры индСкса. Они Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ сигнатуры индСкса Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°Ρ…:

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, индСксированныС Π΄Π°Π½Π½Ρ‹Π΅ Π»ΡƒΡ‡ΡˆΠ΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС.

ΠšΠ»Π°ΡΡΡ‹ ΠΈ наслСдованиС

Как ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языках, классы Π² JS ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π»Π΅Π½ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΈΡ… классов.

implements

ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π΅Ρ€Π΅ΠΆΠ΅Π½ΠΈΠ΅

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ implements всСго лишь провСряСт, соотвСтствуСт Π»ΠΈ класс ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ интСрфСйсу. Он Π½Π΅ измСняСт Ρ‚ΠΈΠΏ класса ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². ΠžΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ implements измСняСт Ρ‚ΠΈΠΏ класса β€” это Π½Π΅ Ρ‚Π°ΠΊ!

Π’Π°ΠΊΠΆΠ΅ слСдуСт ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π² интСрфСйсС ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ свойства Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ созданию Ρ‚Π°ΠΊΠΎΠ³ΠΎ свойства:

extends

ΠšΠ»Π°ΡΡΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ классами. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ всС свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‡Π»Π΅Π½ΠΎΠ².

ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

TS обСспСчиваСт, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс всСгда Π±Ρ‹Π» ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΠΎΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ «лСгального» способа пСрСзаписи ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

Π’Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс слСдовал ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρƒ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ часто (ΠΈ всСгда лСгально) ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° экзСмпляр ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс:

Π§Ρ‚ΠΎ Ссли ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ€Π°ΠΊΡ‚Ρƒ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса?

Если ΠΌΡ‹ скомпилируСм этот ΠΊΠΎΠ΄, нСсмотря Π½Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ρ‚Π°ΠΊΠΎΠΉ «сниппСт» провалится:

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ классов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌ. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π§Ρ‚ΠΎ здСсь происходит?

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ согласно спСцификации ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса

Запуск конструктора Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса

Запуск конструктора ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса

НаслСдованиС встроСнных Ρ‚ΠΈΠΏΠΎΠ²

Для Ρ‚Π°ΠΊΠΎΠ³ΠΎ подкласса:

Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ:

instanceof сломаСтся ΠΌΠ΅ΠΆΠ΄Ρƒ экзСмплярами подкласса ΠΈ ΠΈΡ… экзСмплярами, поэтому ( new MsgError() ) instanceof MsgError Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ false

Π’ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‡Π»Π΅Π½ΠΎΠ² (member visibility)

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ TS для опрСдСлСния видимости ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ свойств для внСшнСго ΠΊΠΎΠ΄Π°, Ρ‚.Π΅. ΠΊΠΎΠ΄Π°, находящСгося Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ класса.

public

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ public являСтся Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ это ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ ΡΡ‚ΠΈΠ»ΡŒ ΠΊΠΎΠ΄Π°.

protected

Π—Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ Ρ‡Π»Π΅Π½Ρ‹ Π²ΠΈΠ΄ΠΈΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для подклассов класса, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹.

РаскрытиС Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Ρ… Ρ‡Π»Π΅Π½ΠΎΠ²

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ классы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρƒ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса, Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΡ‹ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ возмоТностями. Π­Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ protected Ρ‡Π»Π΅Π½ΠΎΠ² Π² статус public :

Доступ ΠΊ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌ Ρ‡Π»Π΅Π½Π°ΠΌ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ классов

Π Π°Π·Π½Ρ‹Π΅ языки ООП ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ подходят ΠΊ доступу ΠΊ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌ Ρ‡Π»Π΅Π½Π°ΠΌ ΠΈΠ· Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса:

private

ЧастныС Ρ‡Π»Π΅Π½Ρ‹ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅, Π½ΠΎ Π½Π΅ доступны Π΄Π°ΠΆΠ΅ Π² подклассах, Ρ‚.Π΅. ΠΎΠ½ΠΈ доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ классС, Π³Π΄Π΅ ΠΎΠ½ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ частныС Ρ‡Π»Π΅Π½Ρ‹ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… классов, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ… Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ:

Доступ ΠΊ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌ Ρ‡Π»Π΅Π½Π°ΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ экзСмплярами

TS Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ доступ:

ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π΅Ρ€Π΅ΠΆΠ΅Π½ΠΈΠ΅

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ «настоящих» частных Ρ‡Π»Π΅Π½ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, ΠΊΠ°ΠΊ замыкания (closures), слабыС ΠΊΠ°Ρ€Ρ‚Ρ‹ (weak maps) ΠΈΠ»ΠΈ синтаксис ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ класса (private fields, # ).

БтатичСскиС Ρ‡Π»Π΅Π½Ρ‹ (static members)

Π’ классах ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅ΡΡ‚ΡŒΡΡ статичСскиС Ρ‡Π»Π΅Π½Ρ‹. Π’Π°ΠΊΠΈΠ΅ Ρ‡Π»Π΅Π½Ρ‹ Π½Π΅ связаны с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ экзСмплярами класса. Они доступны Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ конструктора класса:

БтатичСскиС Ρ‡Π»Π΅Π½Ρ‹ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ:

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ названия статичСских Ρ‡Π»Π΅Π½ΠΎΠ²

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ сущСствуСт статичСских классов?

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ C# ΠΈΠ»ΠΈ Java сущСствуСт такая конструкция, ΠΊΠ°ΠΊ статичСский класс (static class).

БущСствованиС этих конструкций обусловлСно Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½Π°Π·Π²Π°Π½Π½Ρ‹Ρ… языках всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ классов; Π² TS Ρ‚Π°ΠΊΠΎΠ³ΠΎ ограничСния Π½Π΅ сущСствуСт, поэтому Π² статичСских классах Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ нСобходимости.

НапримСр, Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ синтаксис «статичСского класса», ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (ΠΈΠ»ΠΈ функция Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня) прСкрасно ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ с Ρ‚Π°ΠΊΠΈΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ:

ΠžΠ±Ρ‰ΠΈΠ΅ классы (generic classes)

Π’ классах, ΠΊΠ°ΠΊ ΠΈ Π² интСрфСйсах, ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ограничСния Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΎΠ² ΠΈ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‚ΠΈΠΏΠ° Π² статичСских Ρ‡Π»Π΅Π½Π°Ρ…

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄, ΠΊΠ°ΠΊ Π½ΠΈ странно, являСтся ΠΠ•Π»Π΅Π³Π°Π»ΡŒΠ½Ρ‹ΠΌ:

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ this Π² классах Π²ΠΎ врСмя выполнСния ΠΊΠΎΠ΄Π°

TS Π½Π΅ измСняСт повСдСния JS Π²ΠΎ врСмя выполнСния. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° this Π² JS ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ:

TS прСдоставляСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ срСдства для измСнСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ повСдСния.

Π‘Ρ‚Ρ€Π΅Π»ΠΎΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Если Ρƒ вас имССтся функция, которая часто Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ способом, приводящим ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ контСкста, ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ свойство Π² Π²ΠΈΠ΄Π΅ стрСлочной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… компромиссов:

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ this Π±ΡƒΠ΄Π΅Ρ‚ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π²ΠΎ врСмя выполнСния, Π΄Π°ΠΆΠ΅ Π² ΠΊΠΎΠ΄Π΅, Π½Π΅ ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ TS

Π‘ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ большС памяти, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ экзСмпляра класса Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ новая функция

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ this

TS провСряСт, Ρ‡Ρ‚ΠΎ функция с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ this вызываСтся Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ контСкстС. ВмСсто использования стрСлочной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ this Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° для обСспСчСния коррСктности Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°:

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ‚Π°ΠΊΠΆΠ΅ сопряТСн с нСсколькими органичСниями:

ΠœΡ‹ всС Π΅Ρ‰Π΅ ΠΈΠΌΠ΅Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ

ВыдСляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° функция для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ опрСдСлСния класса, Π° Π½Π΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ экзСмпляра класса

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ опрСдСлСния ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· super

Π’ΠΈΠΏΡ‹ this

Π’ классах ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ this динамичСски ссылаСтся Π½Π° Ρ‚ΠΈΠΏ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ класса:

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ this Π² Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°:

Π­Ρ‚ΠΎ отличаСтся ΠΎΡ‚ other: Box β€” Ссли Ρƒ нас имССтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс, Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ sameAs Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ экзСмпляры этого ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса:

ΠžΡΠ½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° this Π·Π°Ρ‰ΠΈΡ‚Π½ΠΈΠΊΠΈ Ρ‚ΠΈΠΏΠ°

Бвойства ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

ВыраТСния классов (class expressions)

ВыраТСния классов ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° опрСдСлСния классов. ЕдинствСнным ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ выраТСния классов Π½Π΅ Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π½ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ любого ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΠ½ΠΈ привязаны (bound):

АбстрактныС классы ΠΈ Ρ‡Π»Π΅Π½Ρ‹

ΠšΠ»Π°ΡΡΡ‹, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ поля Π² TS ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ абстрактными.

Абстрактным называСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’Π°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ поля Π΄ΠΎΠ»ΠΆΠ½Ρ‹ находится Π²Π½ΡƒΡ‚Ρ€ΠΈ абстрактного класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ½ΡΡ‚Π°Π½Ρ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.

АбстрактныС классы Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π² Ρ€ΠΎΠ»ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов для подклассов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ абстрактных Ρ‡Π»Π΅Π½ΠΎΠ². ΠŸΡ€ΠΈ отсутствии абстрактных Ρ‡Π»Π΅Π½ΠΎΠ² класс считаСтся ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ (concrete).

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ссли ΠΌΡ‹ Π·Π°Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ абстрактных Ρ‡Π»Π΅Π½ΠΎΠ², Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

Π‘ΠΈΠ³Π½Π°Ρ‚ΡƒΡ€Ρ‹ абстрактных конструкций (abstract construct signatures)

Иногда Π½Π°ΠΌ трСбуСтся конструктор класса, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠΉ экзСмпляр класса, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ абстрактного класса.

ВмСсто этого, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅Ρ‡Ρ‚ΠΎ с сигнатурой конструктора:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ TS ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π°ΠΌ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ конструктор ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ β€” Derived ΠΌΠΎΠΆΠ΅Ρ‚, Π° Base Π½Π΅Ρ‚.

ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ классами

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв классы Π² TS ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ структурно, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ.

НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π²Π° класса ΡΠ²Π»ΡΡŽΡ‚ΡΡ взаимозамСняСмыми, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹:

Π’Π°ΠΊΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ отсутствии явного наслСдования:

Однако, сущСствуСт ΠΎΠ΄Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

ΠŸΡƒΡΡ‚Ρ‹Π΅ классы Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‡Π»Π΅Π½ΠΎΠ². Π’ структурном ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΈΠ΅ классы ΡΠ²Π»ΡΡŽΡ‚ΡΡ «супСртипами» для Π»ΡŽΠ±Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ². Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, Ссли ΠΌΡ‹ создадим пустой класс (Π½Π΅ Π½Π°Π΄ΠΎ этого Π΄Π΅Π»Π°Ρ‚ΡŒ!), вмСсто Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ:

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ сСрвСры ΠΎΡ‚ ΠœΠ°ΠΊΠ»Π°ΡƒΠ΄ быстрыС ΠΈ бСзопасныС.

Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΏΠΎ ссылкС Π²Ρ‹ΡˆΠ΅ ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠΊΠ½ΡƒΠ² Π½Π° Π±Π°Π½Π½Π΅Ρ€ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ 10% скидку Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ мСсяц Π°Ρ€Π΅Π½Π΄Ρ‹ сСрвСра любой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ синтаксис – ΠΊΠ°ΠΊ Π΄Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΈ понятноС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ этому Ρ€Π°Π·Π΄Π΅Π»Ρƒ лингвистики ΠΈ ΠΊΠ°ΠΊ Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² сути синтаксиса

Π Π°Π·Π΄Π΅Π» Π½Π°ΡƒΠΊΠΈ ΠΎ языкС. Π˜Π·ΡƒΡ‡Π°Π΅Ρ‚ словосочСтаниС, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ тСкст.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС

Когда ΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΈΡ†Π° спросит вас, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ синтаксис, Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ: Β«Π­Ρ‚ΠΎ Ρ€Π°Π·Π΄Π΅Π» Π½Π°ΡƒΠΊΠΈ ΠΎ языкС». Она ΠΎΠΏΡΡ‚ΡŒ спросит: «А Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚?Β». ΠžΡ‚Π²Π΅Ρ‚: «БинтаксичСскиС Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹Β». «КакиС?Β» – «БловосочСтаниС, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, тСкст».

Всё вмСстС: «Бинтаксис – это Ρ€Π°Π·Π΄Π΅Π» Π½Π°ΡƒΠΊΠΈ ΠΎ языкС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚ 3 синтаксичСскиС Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹: словосочСтаниС, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, тСкст».

Как ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚ синтаксис

Π‘ грСчСского «синтаксис» пСрСводится ΠΊΠ°ΠΊ «строй», «порядок». Он ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚ Ρ‚ΠΎ, ΠΊΠ°ΠΊ «строятся» слова для выраТСния ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ мысли. Π‘Π»ΠΎΠ²Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ Π² словосочСтания, словосочСтания – Π² прСдлоТСния, прСдлоТСния – Π² тСксты.

ΠŸΠ°Ρ€Ρƒ слов скаТу ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ элСмСнтС

БловосочСтаниС – это всСго лишь Π΄Π²Π° слова. Из Π½ΠΈΡ… ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ всСгда ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ вопрос ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. НапримСр: Π³ΡƒΠ»ΡΡ‚ΡŒ Π²ΠΎ Π΄Π²ΠΎΡ€Π΅, Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ, красивый Π΄ΠΎΠΌ, ΠΎΡ‡Π΅Π½ΡŒ высоко.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ словосочСтаний Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ (общСния). Π’ΠΎ Π΅ΡΡ‚ΡŒ общаСмся ΠΌΡ‹ Π½Π΅ словосочСтаниями, Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ – прСдлоТСниями.

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ – это нСсколько слов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ ΠΈΠ½Ρ‚ΠΎΠ½Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ – это закончСнная, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ оформлСнная ΠΌΡ‹ΡΠ»ΡŒ.

Π’ любом ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΅ΡΡ‚ΡŒ грамматичСская основа. Она ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСна двумя Π³Π»Π°Π²Π½Ρ‹ΠΌΠΈ Ρ‡Π»Π΅Π½Π°ΠΌΠΈ: ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΌ ΠΈ сказуСмым. А ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСна ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½ΠΈΡ…: Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΌ ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сказуСмым. Но Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎ всСгда Π±ΡƒΠ΄Π΅Ρ‚.

ВСкст – это нСсколько ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Но Π½Π΅ просто собранных Π½Π΅ ΠΏΠΎΠΉΠΌΠΈ ΠΎΡ‚ΠΊΡƒΠ΄Π°, Π° связанный ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠΎΠΉ. НапримСр, Π±Ρ‹Π²Π°ΡŽΡ‚ тСксты ΠΎΠ± осСни, ΠΎ любви, ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ… нахоТдСния ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° ΠΈ ΠΏΡ€.

ВСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сСйчас ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ, – ΠΎ синтаксисС. ВсС прСдлоТСния Π² Π½Π΅ΠΌ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Π½Ρ‹ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ синтаксис.

Как Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² синтаксисС

Надо Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² ΠΌΠΎΡ€Ρ„ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Бинтаксис ΠΎΡ‡Π΅Π½ΡŒ тСсно связан с ΠΌΠΎΡ€Ρ„ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ, ΠΎΠ½ΠΈ вмСстС ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ любого языка. Если Π²Ρ‹ Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ слово ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π΅Ρ‡ΠΈ – синтаксис для вас всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅ΠΌΠ½Ρ‹ΠΌ лСсом.

ДСтям Π±Ρ‹Π²Π°Π΅Ρ‚ слоТно ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ схСмы ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π² частях Ρ€Π΅Ρ‡ΠΈ. НапримСр, Β«Π― ΡƒΠ²ΠΈΠ΄Π΅Π» Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ³Ρ€Π°Π» Π½Π° Π°ΠΊΠΊΠΎΡ€Π΄Π΅ΠΎΠ½Π΅Β».

Β«ΠšΠΎΡ‚ΠΎΡ€Ρ‹ΠΉΒ» – ΠΊΠ°ΠΊΠΎΠΉ это Ρ‡Π»Π΅Π½ прСдлоТСния ΠΈ какая Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π΅Ρ‡ΠΈ?

Π― Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π²ΡƒΠ·Π΅ понял, Ρ‡Ρ‚ΠΎ это ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰Π΅Π΅, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ мСстоимСниСм. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Β«ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉΒ» = Β«Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΒ» (Ρ‚ΠΎΡ‚ самый, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Π½Π° Π°ΠΊΠΊΠΎΡ€Π΄Π΅ΠΎΠ½Π΅).

«Он Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² госпиталС». ΠŸΠΎΡ‡Π΅ΠΌΡƒ Β«Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΒ» – простоС глагольноС сказуСмоС? ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это Π³Π»Π°Π³ΠΎΠ» Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ Π³Π»Π°Π³ΠΎΠ»ΠΎΠΌ Β«ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Β».

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ синтаксис, Π²ΠΎΡ‚ это всё Π½Π°Π΄ΠΎ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² Π³ΠΎΠ»ΠΎΠ²Π΅.

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ синтаксис

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π½Π°ΠΊΠΈ прСпинания.

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

И Π΅Ρ‰Π΅ синтаксис Π½ΡƒΠΆΠ΅Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΠ·Π»Π°Π³Π°Ρ‚ΡŒ свои мысли. НС ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ ΠΈ Π½Π΅ ΡΠ±ΠΈΠ²Π°Ρ‚ΡŒΡΡ.

Когда Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ синтаксичСский Ρ€Π°Π·Π±ΠΎΡ€, Π²Ρ‹ слСдитС Π·Π° ΠΌΡ‹ΡΠ»ΡŒΡŽ Π°Π²Ρ‚ΠΎΡ€Π°, Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΎΠ½ Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· слова. Π­Ρ‚ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ вашС собствСнноС логичСскоС ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠΌΠ΅Π½ΠΈΠ΅ Π²Ρ‹ΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ язык для выраТСния мыслСй ΠΈ чувств.

ОсобСнно Π² этом ΠΏΠ»Π°Π½Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ слоТныС прСдлоТСния классиков. НапримСр, Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ΅, ΠΈΠ· Π§Π΅Ρ…ΠΎΠ²Π°:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ°ΠΌΠΎΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ синтаксис this Π² классС

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ

ΠŸΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° обновлСния сайта. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‹Π»Π°Ρ‚ΡŒ Π²Π°ΠΌ Π½Π° ΠΏΠΎΡ‡Ρ‚Ρƒ Π½ΠΎΠ²Ρ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΠΈ курсов ΠΏΠΎ русскому языку. Π’Π°ΠΌ Π΅ΡΡ‚ΡŒ ΠΈ бСсплатныС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹. Они ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°ΠΌ ΠΈ экзамСнам:

Под ΡΡ‚Π°Ρ‚ΡŒΠ΅ΠΉ Π΅ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ° для ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² – Ρ‚Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ вопросы ΠΈΠ»ΠΈ ΠΏΠΎΠΊΡ€ΠΈΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *