ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Java β€” ΠΊΠ°ΠΊ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным. cbc0f0509128ea8a7487ec71c1240fb531db396b. ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным Ρ„ΠΎΡ‚ΠΎ. ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным-cbc0f0509128ea8a7487ec71c1240fb531db396b. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° cbc0f0509128ea8a7487ec71c1240fb531db396b. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ β€” это ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ. Если Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (Pascal, Basic), вспомнитС, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ функция β€” ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρƒ Π½Π΅Ρ‘ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ.

ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным. cbc0f0509128ea8a7487ec71c1240fb531db396b. ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным Ρ„ΠΎΡ‚ΠΎ. ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным-cbc0f0509128ea8a7487ec71c1240fb531db396b. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° cbc0f0509128ea8a7487ec71c1240fb531db396b. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ β€” это ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ. Если Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (Pascal, Basic), вспомнитС, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ функция β€” ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρƒ Π½Π΅Ρ‘ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ.

ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным. content 481312c843a199af94bd75ed8efb4918. ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным Ρ„ΠΎΡ‚ΠΎ. ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным-content 481312c843a199af94bd75ed8efb4918. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° content 481312c843a199af94bd75ed8efb4918. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ β€” это ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ. Если Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (Pascal, Basic), вспомнитС, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ функция β€” ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρƒ Π½Π΅Ρ‘ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ.

Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ β€” это ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ. Если Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (Pascal, Basic), вспомнитС, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ функция β€” ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρƒ Π½Π΅Ρ‘ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ.

Π₯ΠΎΡ€ΠΎΡˆΠΎ написанный ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ: Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΈΠ· числа (ΠΊΠ°ΠΊ ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ sqrt() Π² Java), ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ число Π² строку (ΠΌΠ΅Ρ‚ΠΎΠ΄ toString()), присваиваСт значСния полям ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Новый ΠΌΠ΅Ρ‚ΠΎΠ΄ сначала ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ для Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ класса.

Π¨Ρ‚Π°Ρ‚Π½Ρ‹Π΅ β€” встроСнныС β€” ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ языка Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ со слуТСбными ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. НапримСр, ΠΌΠ΅Ρ‚ΠΎΠ΄ print Π² Java Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ значСния Π² консоль. Π’Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π΅Π³ΠΎ Ρ‚Π°ΠΊ:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° структуру: Ρƒ класса System Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅ out β€” ΠΏΠΎΡ‚ΠΎΠΊ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°. ПолС β€” Ρ‚ΠΎΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈ Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ print(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ.

Π•Ρ‰Ρ‘ Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ println(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ автоматичСски ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΡƒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку. Π­Ρ‚ΠΎ избавляСт ΠΎΡ‚ нСобходимости ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Β«\nΒ» Π² мСстС пСрСноса строки.

Π§Ρ‚ΠΎΠ±Ρ‹ Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π² Π΅Π³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ main.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° main ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ массив строк, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС β€” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² запуска.

ОбъявлСниС ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² Java

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ значСния, ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ»ΠΈ Π±Π΅Π·. Π’ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΈ объявлСнии ΠΌΠ΅Ρ‚ΠΎΠ΄Π° β€” ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½Π΅ΠΌ.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΠΉΡ‚ΠΈ большСС ΠΈΠ· Π΄Π²ΡƒΡ… Ρ†Π΅Π»Ρ‹Ρ… чисСл, поэтому Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния β€” int:

Π’ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° сначала ΠΈΠ΄ΡƒΡ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅, Π½Π° ΠΊΠ°ΠΊΠΈΡ… условиях ΠΎΠ½ доступСн для Π²Ρ‹Π·ΠΎΠ²Π°. Об этом Ρ‡ΡƒΡ‚ΡŒ Π½ΠΈΠΆΠ΅. ВСрнёмся ΠΊ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΡƒ: int β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ, maxFinder β€” имя ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π² скобках β€” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.

Π’ Ρ‚Π΅Π»Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π°Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ max, ΠΊΡƒΠ΄Π° ΠΏΠΎΡ‚ΠΎΠΌ запишСм большСС число. Π”Π°Π»Π΅Π΅ сравниваСм значСния, фиксируСм большСС Π² max ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, return ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½ΠΎ ΠΈ с Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Если Π±Ρ‹ ΠΌΡ‹ Π½Π΅ сравнивали значСния, Π° складывали, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’ Ρ‚Π΅Π»Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π±Ρ‹Π»Π° Π±Ρ‹ всСго ΠΎΠ΄Π½Π° строка:

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

Как Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² Java

ΠœΠ΅Ρ‚ΠΎΠ΄ с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ public ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ· любого класса, Π² Ρ‚ΠΎΠΌ числС Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΠΎ внСшнСм Ρ„Π°ΠΉΠ»Π΅. Если Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±Ρ‹Π» доступСн ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ своСго класса, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ private. Π•ΡΡ‚ΡŒ ΠΈ Π±ΠΎΠ»Π΅Π΅ мягкий Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ограничСния доступа: ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ protected доступны подклассам своСго класса ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ классам ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π§Π΅ΠΌ слоТнСС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ΠΈΠ·Π²Π½Π΅, Ρ‚Π΅ΠΌ бСзопаснСС β€” Π½ΠΈΠΆΠ΅ риск ошибок.

БтатичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² Java ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ классу, Π° Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ (ΠΈ экзСмплярам) класса. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΅Π³ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π±Π΅Π· создания экзСмпляра.

Для простоты ΠΌΡ‹ сдСлали ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΈ статичСскими ΠΈ размСстили ΠΈΡ… Π² Π³Π»Π°Π²Π½ΠΎΠΌ классС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ двумя способами β€” Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΎΠ½ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Если Π΄Π°, подставляСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΡƒΠ΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ:

ΠœΡ‹ Π²Ρ‹Π·Π²Π°Π»ΠΈ maxFinder ΠΈ сразу Π²Ρ‹Π²Π΅Π»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° экран. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° числа Π·Π°Π΄Π°Π½Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, ΠΊΠ°ΠΊ Π½Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы, Π½ΠΎ Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… прилоТСниях ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

ПослС Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ управляСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π΄ΠΎ окончания своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹: ΠΏΠΎΠΊΠ° Π² Π΅Π³ΠΎ Ρ‚Π΅Π»Π΅ Π½Π΅ сработаСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΈΠ»ΠΈ прСрывания, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ всС находящиСся Π² Π½Ρ‘ΠΌ инструкции.

Π’Ρ‹Π·ΠΎΠ²Π΅ΠΌ theWarning, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚:

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ обходится Π±Π΅Π· ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠ² β€” Π΄Π΅Π»Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ.

Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ класса

А Ссли Π±Ρ‹ maxFinder находился Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ классС ΠΈ Π±Ρ‹Π» Π½Π΅ статичСским? Π’ΠΎΠ³Π΄Π° для Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ сначала ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ находится. Допустим, ΠΌΠ΅Ρ‚ΠΎΠ΄ находится Π² классС SampleClass. Π’Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ:

БтатичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ класса β€” Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

ΠŸΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² Java

Π§Ρ‚ΠΎ, Ссли Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Π΅ числа, Π½ΠΎ ΠΈ числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ? Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. ΠšΠΎΠΏΠΈΠΏΠ°ΡΡ‚ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ maxFinder Π² Ρ‚ΠΎΡ‚ ΠΆΠ΅ класс, замСняСм Ρ‚ΠΈΠΏΡ‹ всСх задСйствованных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π° double:

Имя ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅ мСняСм! Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ°: компилятор сам Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚, ΠΊΠ°ΠΊΡƒΡŽ ΠΈΠ· вСрсий ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ β€” Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, значСния ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° сравниваСм.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово this Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… Java

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово this позволяСт ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° экзСмпляры класса: ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ конструкторы. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ this Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ»ΠΈ конструктора экзСмпляра. НапримСр, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ экзСмпляра класса:

Π•Ρ‰Ρ‘ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” Π²Ρ‹Π·ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ конструктора ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ:

Π­Ρ‚ΠΎ называСтся «явный Π²Ρ‹Π·ΠΎΠ² конструктора».

АбстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² Π”ΠΆΠ°Π²Π΅

Абстрактным Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ объявлСн Π±Π΅Π· Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” ΠΎΠ½ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈ Ρ‚Π΅Π»Π°, Π½ΠΈ Π΄Π°ΠΆΠ΅ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок. ΠŸΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ставят ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ abstract:

Π—Π°Ρ‡Π΅ΠΌ ΠΎΠ½ Ρ‚Π°ΠΊΠΎΠΉ Π½ΡƒΠΆΠ΅Π½? Π’ качСствС шаблона для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… классов. Π’ΠΎΡ‚ Π΅ΡΡ‚ΡŒ Ρƒ нас абстрактный класс Β«Π‘Ρ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅Β», Π° Π² Π½Ρ‘ΠΌ β€” абстрактный ΠΌΠ΅Ρ‚ΠΎΠ΄ «возвСсти». Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ эти абстракции Π½ΡƒΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· нСсколько нСабстрактных классов-наслСдников ΠΈ ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: класс Β«Π₯ΠΈΠΆΠΈΠ½Π°Β» β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ «стройΠ₯ΠΈΠΆΠΈΠ½ΡƒΒ», класс Β«ΠœΠΎΡΡ‚Β» β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ Β«ΡΡ‚Ρ€ΠΎΠΉΠœΠΎΡΡ‚Β» ΠΈ Π΄Ρ€.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρƒ абстрактного класса Π½Π΅Ρ‚, экзСмпляры Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ нСльзя. Он β€” шаблон, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π΄Π°Ρ‘Ρ‚ структуру для Π΄Ρ€ΡƒΠ³ΠΈΡ… классов ΠΈ содСрТит объявлСния ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

ΠšΡ€ΠΎΠΌΠ΅ этого, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΠΎΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²Π΅Π±ΠΈΠ½Π°Ρ€ ΠΏΠΎ ввСдСнию Π² ООП Π½Π° Java, Π³Π΄Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈ конструкторами.

ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным. content 481312c843a199af94bd75ed8efb4918. ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным Ρ„ΠΎΡ‚ΠΎ. ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным-content 481312c843a199af94bd75ed8efb4918. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° content 481312c843a199af94bd75ed8efb4918. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ β€” это ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ. Если Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (Pascal, Basic), вспомнитС, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ функция β€” ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρƒ Π½Π΅Ρ‘ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ.

Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ β€” это ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ. Если Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (Pascal, Basic), вспомнитС, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ функция β€” ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρƒ Π½Π΅Ρ‘ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ.

Π₯ΠΎΡ€ΠΎΡˆΠΎ написанный ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ: Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΈΠ· числа (ΠΊΠ°ΠΊ ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ sqrt() Π² Java), ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ число Π² строку (ΠΌΠ΅Ρ‚ΠΎΠ΄ toString()), присваиваСт значСния полям ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Новый ΠΌΠ΅Ρ‚ΠΎΠ΄ сначала ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ для Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ класса.

Π¨Ρ‚Π°Ρ‚Π½Ρ‹Π΅ β€” встроСнныС β€” ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ языка Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ со слуТСбными ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. НапримСр, ΠΌΠ΅Ρ‚ΠΎΠ΄ print Π² Java Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ значСния Π² консоль. Π’Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π΅Π³ΠΎ Ρ‚Π°ΠΊ:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° структуру: Ρƒ класса System Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅ out β€” ΠΏΠΎΡ‚ΠΎΠΊ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°. ПолС β€” Ρ‚ΠΎΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈ Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ print(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ.

Π•Ρ‰Ρ‘ Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ println(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ автоматичСски ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΡƒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку. Π­Ρ‚ΠΎ избавляСт ΠΎΡ‚ нСобходимости ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Β«\nΒ» Π² мСстС пСрСноса строки.

Π§Ρ‚ΠΎΠ±Ρ‹ Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π² Π΅Π³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ main.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° main ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ массив строк, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС β€” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² запуска.

ОбъявлСниС ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² Java

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ значСния, ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ»ΠΈ Π±Π΅Π·. Π’ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΈ объявлСнии ΠΌΠ΅Ρ‚ΠΎΠ΄Π° β€” ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½Π΅ΠΌ.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΠΉΡ‚ΠΈ большСС ΠΈΠ· Π΄Π²ΡƒΡ… Ρ†Π΅Π»Ρ‹Ρ… чисСл, поэтому Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния β€” int:

Π’ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° сначала ΠΈΠ΄ΡƒΡ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅, Π½Π° ΠΊΠ°ΠΊΠΈΡ… условиях ΠΎΠ½ доступСн для Π²Ρ‹Π·ΠΎΠ²Π°. Об этом Ρ‡ΡƒΡ‚ΡŒ Π½ΠΈΠΆΠ΅. ВСрнёмся ΠΊ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΡƒ: int β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ, maxFinder β€” имя ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π² скобках β€” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.

Π’ Ρ‚Π΅Π»Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π°Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ max, ΠΊΡƒΠ΄Π° ΠΏΠΎΡ‚ΠΎΠΌ запишСм большСС число. Π”Π°Π»Π΅Π΅ сравниваСм значСния, фиксируСм большСС Π² max ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, return ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½ΠΎ ΠΈ с Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Если Π±Ρ‹ ΠΌΡ‹ Π½Π΅ сравнивали значСния, Π° складывали, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’ Ρ‚Π΅Π»Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π±Ρ‹Π»Π° Π±Ρ‹ всСго ΠΎΠ΄Π½Π° строка:

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

Как Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² Java

ΠœΠ΅Ρ‚ΠΎΠ΄ с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ public ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ· любого класса, Π² Ρ‚ΠΎΠΌ числС Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΠΎ внСшнСм Ρ„Π°ΠΉΠ»Π΅. Если Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±Ρ‹Π» доступСн ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ своСго класса, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ private. Π•ΡΡ‚ΡŒ ΠΈ Π±ΠΎΠ»Π΅Π΅ мягкий Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ограничСния доступа: ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ protected доступны подклассам своСго класса ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ классам ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π§Π΅ΠΌ слоТнСС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ΠΈΠ·Π²Π½Π΅, Ρ‚Π΅ΠΌ бСзопаснСС β€” Π½ΠΈΠΆΠ΅ риск ошибок.

БтатичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² Java ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ классу, Π° Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ (ΠΈ экзСмплярам) класса. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΅Π³ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π±Π΅Π· создания экзСмпляра.

Для простоты ΠΌΡ‹ сдСлали ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΈ статичСскими ΠΈ размСстили ΠΈΡ… Π² Π³Π»Π°Π²Π½ΠΎΠΌ классС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ двумя способами β€” Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΎΠ½ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Если Π΄Π°, подставляСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΡƒΠ΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ:

ΠœΡ‹ Π²Ρ‹Π·Π²Π°Π»ΠΈ maxFinder ΠΈ сразу Π²Ρ‹Π²Π΅Π»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° экран. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° числа Π·Π°Π΄Π°Π½Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, ΠΊΠ°ΠΊ Π½Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы, Π½ΠΎ Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… прилоТСниях ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

ПослС Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ управляСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π΄ΠΎ окончания своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹: ΠΏΠΎΠΊΠ° Π² Π΅Π³ΠΎ Ρ‚Π΅Π»Π΅ Π½Π΅ сработаСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΈΠ»ΠΈ прСрывания, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ всС находящиСся Π² Π½Ρ‘ΠΌ инструкции.

Π’Ρ‹Π·ΠΎΠ²Π΅ΠΌ theWarning, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚:

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ обходится Π±Π΅Π· ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠ² β€” Π΄Π΅Π»Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ.

Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ класса

А Ссли Π±Ρ‹ maxFinder находился Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ классС ΠΈ Π±Ρ‹Π» Π½Π΅ статичСским? Π’ΠΎΠ³Π΄Π° для Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ сначала ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ находится. Допустим, ΠΌΠ΅Ρ‚ΠΎΠ΄ находится Π² классС SampleClass. Π’Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ:

БтатичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ класса β€” Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

ΠŸΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² Java

Π§Ρ‚ΠΎ, Ссли Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Π΅ числа, Π½ΠΎ ΠΈ числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ? Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. ΠšΠΎΠΏΠΈΠΏΠ°ΡΡ‚ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ maxFinder Π² Ρ‚ΠΎΡ‚ ΠΆΠ΅ класс, замСняСм Ρ‚ΠΈΠΏΡ‹ всСх задСйствованных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π° double:

Имя ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅ мСняСм! Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ°: компилятор сам Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚, ΠΊΠ°ΠΊΡƒΡŽ ΠΈΠ· вСрсий ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ β€” Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, значСния ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° сравниваСм.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово this Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… Java

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово this позволяСт ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° экзСмпляры класса: ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ конструкторы. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ this Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ»ΠΈ конструктора экзСмпляра. НапримСр, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ экзСмпляра класса:

Π•Ρ‰Ρ‘ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” Π²Ρ‹Π·ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ конструктора ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ:

Π­Ρ‚ΠΎ называСтся «явный Π²Ρ‹Π·ΠΎΠ² конструктора».

АбстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² Π”ΠΆΠ°Π²Π΅

Абстрактным Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ объявлСн Π±Π΅Π· Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” ΠΎΠ½ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈ Ρ‚Π΅Π»Π°, Π½ΠΈ Π΄Π°ΠΆΠ΅ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок. ΠŸΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ставят ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ abstract:

Π—Π°Ρ‡Π΅ΠΌ ΠΎΠ½ Ρ‚Π°ΠΊΠΎΠΉ Π½ΡƒΠΆΠ΅Π½? Π’ качСствС шаблона для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… классов. Π’ΠΎΡ‚ Π΅ΡΡ‚ΡŒ Ρƒ нас абстрактный класс Β«Π‘Ρ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅Β», Π° Π² Π½Ρ‘ΠΌ β€” абстрактный ΠΌΠ΅Ρ‚ΠΎΠ΄ «возвСсти». Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ эти абстракции Π½ΡƒΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· нСсколько нСабстрактных классов-наслСдников ΠΈ ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: класс Β«Π₯ΠΈΠΆΠΈΠ½Π°Β» β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ «стройΠ₯ΠΈΠΆΠΈΠ½ΡƒΒ», класс Β«ΠœΠΎΡΡ‚Β» β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ Β«ΡΡ‚Ρ€ΠΎΠΉΠœΠΎΡΡ‚Β» ΠΈ Π΄Ρ€.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρƒ абстрактного класса Π½Π΅Ρ‚, экзСмпляры Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ нСльзя. Он β€” шаблон, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π΄Π°Ρ‘Ρ‚ структуру для Π΄Ρ€ΡƒΠ³ΠΈΡ… классов ΠΈ содСрТит объявлСния ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

ΠšΡ€ΠΎΠΌΠ΅ этого, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΠΎΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²Π΅Π±ΠΈΠ½Π°Ρ€ ΠΏΠΎ ввСдСнию Π² ООП Π½Π° Java, Π³Π΄Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈ конструкторами.

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

BestProg

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Поиск Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… рСсурсах:

1. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ абстрактный класс? НазначСниС абстрактных классов. ΠžΠ±Ρ‰Π°Ρ Ρ„ΠΎΡ€ΠΌΠ°. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово abstract

Абстрактный класс – это класс, содСрТащий ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Абстрактный класс создаСтся с Ρ†Π΅Π»ΡŒΡŽ создания ΠΎΠ±Ρ‰Π΅Π³ΠΎ интСрфСйса ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ рСализациями классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌΠΈ ΠΎΡ‚ абстрактного класса. Абстрактный класс создаСтся для опрСдСлСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΎΡ‚ Π½Π΅Π³ΠΎ классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.

Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ (Π½Π΅Ρ‚ смысла) ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ абстрактного класса.

ΠžΠ±Ρ‰Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° объявлСния абстрактного класса ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

2. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ абстрактный ΠΌΠ΅Ρ‚ΠΎΠ΄? ΠžΠ±Ρ‰Π°Ρ Ρ„ΠΎΡ€ΠΌΠ°

Если Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ класс Π΅ΡΡ‚ΡŒ унаслСдованным ΠΎΡ‚ абстрактного, Ρ‚ΠΎ этот класс Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ всС абстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ абстрактного класса. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ сгСнСрирована ошибка.

ΠžΠ±Ρ‰Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° объявлСния абстрактного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² абстрактном классС ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

Π’ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ наслСдования (Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ) классов, абстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ ΠΎΠ±Ρ‰ΠΈΠΌ. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ абстрактных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ классах, унаслСдованных ΠΎΡ‚ абстрактных классов.

3. БхСматичСскоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ объявлСния ΠΈ использования абстрактного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² абстрактном классС. ΠŸΡ€ΠΈΠΌΠ΅Ρ€

ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным. 03 01 02 14 01 01r. ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным Ρ„ΠΎΡ‚ΠΎ. ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным-03 01 02 14 01 01r. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 03 01 02 14 01 01r. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ β€” это ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ. Если Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (Pascal, Basic), вспомнитС, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ функция β€” ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρƒ Π½Π΅Ρ‘ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ.

Рисунок. Π‘Ρ…Π΅ΠΌΠ° взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ абстрактным классом ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌΠΈ классами Π² Java

4. ΠŸΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ дСмонстрируСт использованиС абстрактных классов

Π’ классС Figure ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ:

Π’ классС Triangle() Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main() класса UseAbstractClass Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

5. ОбъяснСниС ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ ΠΈΠ· ΠΏΡƒΠ½ΠΊΡ‚Π° 4

ОбъяснСниС ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ (см. ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡƒΠ½ΠΊΡ‚) Π² Π²ΠΈΠ΄Π΅ вопросов.

5.1. Π—Π°Ρ‡Π΅ΠΌ Π² классС Figure ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Area() ΠΈ ShowName() ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ абстрактными?
5.2. ΠŸΠΎΡ‡Π΅ΠΌΡƒ класс Figure ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ абстрактным?
5.3. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π² классС Figure ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Area() ΠΈ ShowName() Π½Π΅ содСрТат ΠΊΠΎΠ΄Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (Ρ‚Π΅Π»Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°)?

Если Π² абстрактном классС ΠΌΠ΅Ρ‚ΠΎΠ΄ объявлСн ΠΊΠ°ΠΊ абстрактный (с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом abstract ), Ρ‚ΠΎ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (согласно синтаксису Java). Π­Ρ‚ΠΎ поясняСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ² этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла.

5.4. МоТно Π»ΠΈ Π² абстрактном классС Figure Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½Π΅ абстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹?

Π”Π°, ΠΌΠΎΠΆΠ½ΠΎ. Абстрактный класс ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ абстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ интСрфСйса ).

НСт, нСльзя. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка

Π΅ΡΡ‚ΡŒ ошибкой компилятора Java: Β«Cannot instantiate the type FigureΒ».

ΠœΠ΅Ρ‚ΠΎΠ΄ GetArea() ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ссылку с ΠΈΠΌΠ΅Π½Π΅ΠΌ f абстрактного класса Figure, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅ΡΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ классов (ΠΈΠ· класса Figure унаслСдованы Π΄Π²Π° класса Triangle ΠΈ Circle).

Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎ ссылкС вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ Area() Π² строкС

Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main() ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° GetArea()

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ способом связываСтся экзСмпляр f2 класса Circle с ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎΠΉ ссылкой f Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ GetArea()

6. МоТно Π»ΠΈ Π² абстрактном классС ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ (Ρ‚Π΅Π»ΠΎ)?

Π”Π°, ΠΌΠΎΠΆΠ½ΠΎ. Абстрактный класс допускаСт Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π½Π΅ абстрактных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

7. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ создания ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ абстрактных классов

ΠŸΡ€ΠΈΠΌΠ΅Ρ€. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ абстрактных классов

ИспользованиС класса C ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ

8. ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ абстрактный класс Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ абстрактных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²?

Π”Π°, ΠΌΠΎΠΆΠ΅Ρ‚. Π­Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² случаях, ΠΊΠΎΠ³Π΄Π° абстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² классС Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹, Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ созданиС экзСмпляров этого класса.

9. КакиС отличия ΠΌΠ΅ΠΆΠ΄Ρƒ использованиСм абстрактных классов ΠΈ использованиСм интСрфСйсов?

ΠœΠ΅ΠΆΠ΄Ρƒ абстрактными классами ΠΈ интСрфСйсами ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ отличия:

10. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° использования абстрактных классов

ИспользованиС абстрактных классов Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ прСимущСства:

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

АбстрактныС классы ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Класс, содСрТащий абстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, называСтся абстрактным классом. Π’Π°ΠΊΠΈΠ΅ классы ΠΏΠΎΠΌΠ΅Ρ‡Π°ΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом abstract.

Абстрактный ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½. Он состоит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· объявлСния ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π΅Π»Π°:

По сути, ΠΌΡ‹ создаём шаблон ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ абстрактный ΠΌΠ΅Ρ‚ΠΎΠ΄ для вычислСния ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Π² абстрактном классС Π€ΠΈΠ³ΡƒΡ€Π°. А всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ классы ΠΎΡ‚ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ класса ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ для Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π’Π΅Π΄ΡŒ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ Ρƒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° ΠΈ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° вычисляСтся ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅ сущСствуСт.

Если Π²Ρ‹ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚Π΅ класс, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ ΠΎΡ‚ абстрактного класса, Π½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π²Π°ΠΌ придётся ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ опрСдСлСния для всСх абстрактных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса. Если этого Π½Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс Ρ‚ΠΎΠΆΠ΅ останСтся абстрактным, ΠΈ компилятор заставит ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ класс ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом abstract.

МоТно ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ класс с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом abstract Π΄Π°ΠΆΠ΅, Ссли Π² Π½Π΅ΠΌ Π½Π΅ имССтся Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ абстрактного ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π­Ρ‚ΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Π² ситуациях, Π³Π΄Π΅ Π² классС абстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ просто Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹, Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ созданиС экзСмпляров этого класса.

Π’ Ρ‚ΠΎΠΆΠ΅ врСмя абстрактный класс Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ абстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Напомню Π΅Ρ‰Ρ‘ Ρ€Π°Π·, Ρ‡Ρ‚ΠΎ Ссли класс содСрТит хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ абстрактный ΠΌΠ΅Ρ‚ΠΎΠ΄, Ρ‚ΠΎ ΠΎΠ½ обязан Π±Ρ‹Ρ‚ΡŒ сам абстрактным.

Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π° основС абстрактного класса нСльзя.

Абстрактный класс Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ абстрактныС конструкторы ΠΈ абстрактныС статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π›ΡŽΠ±ΠΎΠΉ подкласс абстрактного класса Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈΠ±ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС абстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ супСркласса, Π»ΠΈΠ±ΠΎ сам Π±Ρ‹Ρ‚ΡŒ объявлСн абстрактным. ΠšΠΎΡ€ΠΎΡ‡Π΅, я сам запутался. ΠŸΠΎΠΉΠ΄Ρƒ Π»ΡƒΡ‡ΡˆΠ΅ ΠΊΠΎΡ‚Π° ΠΏΠΎΠ³Π»Π°ΠΆΡƒ.

Π― вСрнулся. Π”Π°Π²Π°ΠΉΡ‚Π΅ напишСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для абстрактного класса.

Допустим, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ абстрактный класс Π‘Ρ„Π΅Ρ€ΠΈΡ‡Π΅ΡΠΊΠΈΠΉΠšΠΎΠ½ΡŒ ΠΈ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ идиотский класс Π‘Ρ„Π΅Ρ€ΠΈΡ‡Π΅ΡΠΊΠΈΠΉΠšΠΎΠ½ΡŒΠ’Π’Π°ΠΊΡƒΡƒΠΌΠ΅, Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ класса.

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

ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным. abstract1. ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным Ρ„ΠΎΡ‚ΠΎ. ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным-abstract1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° abstract1. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ β€” это ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ. Если Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (Pascal, Basic), вспомнитС, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ функция β€” ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρƒ Π½Π΅Ρ‘ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ.

ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным. abstract2. ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным Ρ„ΠΎΡ‚ΠΎ. ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным-abstract2. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ абстрактным. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° abstract2. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ β€” это ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ. Если Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (Pascal, Basic), вспомнитС, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ функция β€” ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρƒ Π½Π΅Ρ‘ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ.

БоглашаСмся ΠΈ дописываСм Π² ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ свой ΠΊΠΎΠ΄ для ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

Π’ Π³Π»Π°Π²Π½ΠΎΠΉ активности напишСм ΠΊΠΎΠ΄ для Ρ‰Π΅Π»Ρ‡ΠΊΠ° ΠΊΠ½ΠΎΠΏΠΊΠΈ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ абстрактный класс ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ абстрактныС, Π½ΠΎ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

Π Π°Π½Π½Π΅Π΅ ΠΌΡ‹ создавали класс Π€ΠΈΠ³ΡƒΡ€Π°, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Ρ‹Π» ΠΌΠ΅Ρ‚ΠΎΠ΄ вычислСния ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹. ΠœΠ΅Ρ‚ΠΎΠ΄ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π», Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ нСизвСстной Ρ„ΠΈΠ³ΡƒΡ€Ρ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ абстрактным, Π° Π² классах, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΎΡ‚ Π€ΠΈΠ³ΡƒΡ€Ρ‹, ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄.

Π’Π°ΠΌ вряд Π»ΠΈ придётся часто ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ абстрактныС классы для своих ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ с Π½ΠΈΠΌΠΈ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ постоянно, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, классы AsyncTask, Service ΠΈ Π΄Ρ€.

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

25. Java – Абстракция: абстрактный класс ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄, наслСдованиС абстрактного класса

Абстракция β€” это качСство общСния с идСями, Π° Π½Π΅ с событиями. НапримСр, Π² случаС с e-mail, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΎ происходящСм Π²ΠΎ врСмя ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ e-mail, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» сСрвСром e-mail – всё это скрыто ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ e-mail Π²Π°ΠΌ достаточно Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ содСрТимоС, адрСс получатСля ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Β«ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΒ».

Π’Π°ΠΊ ΠΈ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ: абстракция – это процСсс скрытия Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, прСдоставляя Π΅ΠΌΡƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π». Π˜Π½Ρ‹ΠΌΠΈ словами, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π»Π°Π΄Π΅Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Π΅Π»Π°Π΅Ρ‚, Π° Π½Π΅ ΠΊΠ°ΠΊ ΠΎΠ½ это Π΄Π΅Π»Π°Π΅Ρ‚.

Π’ Java абстракция достигаСтся с использованиСм абстрактных классов ΠΈ интСрфСйсов.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Абстрактный класс

Класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎ врСмя объявлСния содСрТит Π² сСбС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово abstract, извСстСн ΠΊΠ°ΠΊ абстрактный класс.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π­Ρ‚Π° Π³Π»Π°Π²Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ абстрактного класса. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ абстрактный класс, просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово abstract ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом class Π²ΠΎ врСмя объявлСния класса.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΈΠΌΠΎ абстрактных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класс Employee Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ класс Π² Java. Класс Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ абстрактный, Π½ΠΎ ΠΎΠ½ всё Π΅Ρ‰Ρ‘ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρ€ΠΈ поля, сСмь ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΎΠ΄ΠΈΠ½ конструктор.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр класса Employee ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ компиляции Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ класса Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

НаслСдованиС абстрактного класса

Рассмотрим наслСдоавниС абстрактного класса Π² Java Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ класс Employee, ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ класс, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π—Π΄Π΅ΡΡŒ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр класса Employee, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр класса Salary, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ смоТСтС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊΠΎ всСм Ρ‚Ρ€Ρ‘ΠΌ полям ΠΈ сСми ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ класса Employee, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅.

ПослС запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π½ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Абстрактный ΠΌΠ΅Ρ‚ΠΎΠ΄

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ класс содСрТал ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π½ΠΎ Π²Ρ‹ ΠΆΠ΅Π»Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ фактичСская рСализация этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ»Π°ΡΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ классами, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ классС ΠΊΠ°ΠΊ абстрактный

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ абстрактного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² Java.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

ОбъявлСниС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° абстрактным Π²Π΅Π΄Ρ‘Ρ‚ ΠΊ Π΄Π²ΡƒΠΌ послСдствиям:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², класс-ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ абстрактный ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΈΠ½Π°Ρ‡Π΅ Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ иСрархия абстрактных классов, экзСмпляры ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… нСльзя Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ.

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

АбстрактныС классы Π² ООП Π½Π° PHP

Для этого ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ классы. АбстрактныС классы ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой классы, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для наслСдования ΠΎΡ‚ Π½ΠΈΡ…. ΠŸΡ€ΠΈ этом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ‚Π°ΠΊΠΈΡ… классов нСльзя ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ класс абстрактным, Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈ Π΅Π³ΠΎ объявлСнии Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово abstract :

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса User Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

АбстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅. ΠŸΡƒΡΡ‚ΡŒ прСдполагаСтся, Ρ‡Ρ‚ΠΎ всС ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ класса User Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ increaseRevenue ( ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π΄ΠΎΡ…ΠΎΠ΄ ).

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ€Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Π΄ΠΎΡ…ΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΡƒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ.

Ѐишка Ρ‚ΡƒΡ‚ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ абстрактный ΠΌΠ΅Ρ‚ΠΎΠ΄ класса User заставляСт программиста Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°Ρ…, ΠΈΠ½Π°Ρ‡Π΅ PHP выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹, ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ программист, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ с вашим ΠΊΠΎΠ΄ΠΎΠΌ, Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ смоТСтС Π·Π°Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ΅.

Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅. Π”ΠΎΠ±Π°Π²ΠΈΠΌ абстрактный ΠΌΠ΅Ρ‚ΠΎΠ΄ increaseRevenue Π² класс User :

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ напишСм Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° increaseRevenue Π² классС Employee :

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ нашСго класса:

НСкоторыС замСчания

ΠŸΡ€ΠΈ наслСдовании ΠΎΡ‚ абстрактного класса, всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ абстрактными Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ классС, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΌ классС.

ОбъявлСния ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ: количСство ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ. Однако класс-ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ΠΏΡ€ΠΈ объявлСнии ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°

ΠŸΡƒΡΡ‚ΡŒ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с гСомСтричСскими Ρ„ΠΈΠ³ΡƒΡ€Π°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π°ΠΌΠΈ, ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°ΠΌΠΈ, Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°ΠΌΠΈ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. ΠŸΡƒΡΡ‚ΡŒ каТдая Ρ„ΠΈΠ³ΡƒΡ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ своим классом, ΠΏΡ€ΠΈ этом ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ класс ΠΈΠΌΠ΅Π» ΠΌΠ΅Ρ‚ΠΎΠ΄ для вычислСния ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ для вычислСния ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€Π° Ρ„ΠΈΠ³ΡƒΡ€Ρ‹.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ класс Figure абстрактный: ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ описываСт Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ„ΠΈΠ³ΡƒΡ€Ρƒ ΠΈ, соотвСтствСнно, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ этого класса ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ getSquare ΠΈ getPerimeter абстрактныС: ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ каТдая Ρ„ΠΈΠ³ΡƒΡ€Π° ΠΈΠΌΠ΅Π΅Ρ‚ свой Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ вычислСния ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ ΠΈ ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€Π° ΠΈ, соотвСтствСнно, класс Figure Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

Π—Π°Ρ‡Π΅ΠΌ Π½Π°ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΡƒΠΆΠ΅Π½ класс Figure : Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ Π½Π΅Π³ΠΎ ΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ всСх наслСдников Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

Π˜Ρ‚Π°ΠΊ, напишСм Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ класса Figure :

ΠŸΡƒΡΡ‚ΡŒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс Quadrate для описания гСомСтричСской Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚. Как извСстно, Ρƒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π° всС стороны Ρ€Π°Π²Π½Ρ‹, поэтому для описания ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π³ΠΎ ΡˆΠΈΡ€ΠΈΠ½Ρƒ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ унаслСдуСм наш класс Quadrate ΠΎΡ‚ класса Figure :

БСйчас наша рСализация класса Quadrate Π½Π΅ рабочая, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π½Π΅ написали Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ абстрактных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² родитСля.

Π”Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм это:

Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ со стороной 2 ΠΈ Π½Π°ΠΉΠ΄Π΅ΠΌ Π΅Π³ΠΎ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ ΠΈ ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€:

УслоТним

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ абстрактный, Π° ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΈ всС ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ смогут Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ этим ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° прямо Π² классС Figure : ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ для всСх ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ².

Π˜Ρ‚Π°ΠΊ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ наш ΠΌΠ΅Ρ‚ΠΎΠ΄:

ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ наш ΠΌΠ΅Ρ‚ΠΎΠ΄:

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

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

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