Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ:
111111110656
Π’ΠΈΠΏ float Π½Π΅ ΡΠΌΠΎΠ³ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅ Π·Π½Π°ΡΠ°ΡΠΈΠ΅ ΡΠ°Π·ΡΡΠ΄Ρ, Ρ ΠΎΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ long ΠΊ float ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π±Π΅Π· ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°.
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ-ΠΎΠ±Π΅ΡΡΠΊΠΈ (wrapper classes). ΠΠ»Ρ ΡΠΈΠΏΠΎΠ² float ΠΈ double ΡΡΠΎ Float ΠΈ Double. ΠΡΠΈ ΠΊΠ»Π°ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΡΠΎΠ±Π½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· ΡΠ΅ΠΊΡΡΠ° Π² ΡΠΈΡΠ»ΠΎ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ»Π°ΡΡ Math ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π°Π΄ Π΄ΡΠΎΠ±Π½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΡΠ½Ρ, Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π»ΡΠ±ΡΡ ΡΡΠ΅ΠΏΠ΅Π½Ρ, ΡΡΠΈΠ³ΠΎΠ½ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. Π’Π°ΠΊΠΆΠ΅ Π² ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ PI ΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π»ΠΎΠ³Π°ΡΠΈΡΠΌΠ° E.
ΠΡΠ»Π΅Π² ΡΠΈΠΏ
ΠΡΠ»Π΅Π² ΡΠΈΠΏ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΈΠΏΠΎΠΌ boolean, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅Π³ΠΎ Π΄Π²Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ β true ΠΈ false . ΠΠ΅Π»ΠΈΡΠΈΠ½Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ.
ΠΠ°Π΄ Π±ΡΠ»Π΅Π²ΡΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
* ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ (Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π±ΡΠ»Π΅Π²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅)
==, !=
Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π±ΡΠ»Π΅Π²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅)
!
&, |, ^
&&, ||
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Ρ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ ?:
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠΎ ΡΡΡΠΎΠΊΠΎΠΉ +
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ && ΠΈ || ΠΎΠ±ΡΡΠΆΠ΄Π°Π»ΠΈΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π»Π΅ΠΊΡΠΈΠΈ. Π ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ Ρ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ ?: ΠΏΠ΅ΡΠ²ΡΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° boolean. Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ, ΡΡΠΎΠ±Ρ Π²ΡΠΎΡΠΎΠΉ ΠΈ ΡΡΠ΅ΡΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠΌΠ΅Π»ΠΈ Π±ΡΠ»Π΅Π² ΡΠΈΠΏ.
ΠΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠΎ ΡΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ Π±ΡΠ»Π΅Π²Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Π² ΡΠ΅ΠΊΡΡ "true" ΠΈΠ»ΠΈ "false" Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
Π’ΠΎΠ»ΡΠΊΠΎ Π±ΡΠ»Π΅Π²Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΡΠΈΡΠ΅ΡΠΈΡ ΡΡΠ»ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° if.
ΠΠΈΠΊΠ°ΠΊΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΊΠ°ΠΊ Π±ΡΠ»Π΅Π²ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ ΠΈΡΡΠΈΠ½Π΅ (ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ ΡΠ·ΡΠΊΠ° Π‘), ΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ x!=0. Π‘ΡΡΠ»ΠΎΡΠ½ΡΠ΅ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ Π² boolean Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ref!=null.
Π‘ΡΡΠ»ΠΎΡΠ½ΡΠ΅ ΡΠΈΠΏΡ
ΠΡΠ°ΠΊ, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π»ΠΈΠ±ΠΎ null, Π»ΠΈΠ±ΠΎ ΡΡΡΠ»ΠΊΡ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ JVM.
ΠΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΈΠΌΠΈ
ΠΠ±ΡΠ΅ΠΊΡ (object) β ΡΡΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΈΠ»ΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ°ΡΡΠΈΠ²Ρ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ Π»Π΅ΠΊΡΠΈΠΈ. ΠΠ»Π°ΡΡ β ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ, ΠΈ Π΅ΡΠ»ΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠ°ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π² Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅. ΠΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π±ΡΡΡ Π²ΠΎΠ²ΡΠ΅, Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΎ ΡΠΊΠΎΠ»Ρ ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ.
ΠΠ±ΡΠ΅ΠΊΡΡ Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠ·Π΄Π°ΡΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° new, ΠΏΡΠΈΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎ ΡΠ»ΠΎΠ²ΠΎ new ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅Ρ ΡΡΡΠΎΠ³ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ (ΠΈΠ»ΠΈ Π²ΠΎΠ²ΡΠ΅ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠ°). ΠΠΎΡΠ»Π΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΡΠΎΠ΄ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· Π²ΡΠ·ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° (ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ), ΠΏΠΎΡΡΠΎΠΌΡ Π² Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π²ΡΡΡΡ ΡΠΊΠΎΠ±ΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ. Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ , ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠΈΠΏΠ° Point, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ new Point (3,5) ΠΎΠ·Π½Π°ΡΠ°Π»ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΊΠ»Π°ΡΡΠ° Point, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΅ΡΡΡ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΠΈΠΏΠ° int. ΠΡΡΠ°ΡΠΈ, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π² ΡΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠΌ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΎΡΡΡΡΡΡΠ²ΠΎΠ²Π°Π»ΠΎ. ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π»Π΅ΠΊΡΠΈΡΡ , ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Point:
class Point {
int x, y;
/**
* ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ 2 Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°,
* ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠΎΠ»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
*/
Point (int newx, int newy) {
x=newx;
y=newy;
}
}
ΠΡΠ»ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΎΡΡΠ°Π±ΠΎΡΠ°Π» ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ new Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΡΡ ΡΡΡΠ»ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π² ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. JVM Π²ΡΠ΅Π³Π΄Π° Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠΎΠΌ Ρ ΡΠ°Π½ΠΈΠΌΡΡ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΡΡΠ»ΠΎΠΊ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ, ΡΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ Π΄Π»Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ° (garbage collector). ΠΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠ°ΠΊΠΎΠΉ "ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΡΠΉ" ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
Point p=new Point(1,2);
// Π‘ΠΎΠ·Π΄Π°Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π½Π° Π½Π΅Π³ΠΎ ΡΡΡΠ»ΠΊΡ
Point p1=p;
// ΡΠ΅ΠΏΠ΅ΡΡ Π΅ΡΡΡ 2 ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠΎΡΠΊΡ (1,2)
p=new Point(3,4);
// ΠΎΡΡΠ°Π»Π°ΡΡ ΠΎΠ΄Π½Π° ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΠΎΡΠΊΡ (1,2)
p1=null;
Π‘ΡΡΠ»ΠΎΠΊ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ-ΡΠΎΡΠΊΡ (1,2) Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ, Π΄ΠΎΡΡΡΠΏ ΠΊ Π½Π΅ΠΌΡ ΡΡΠ΅ΡΡΠ½ ΠΈ ΠΎΠ½ Π²ΡΠΊΠΎΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ°.
ΠΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° new. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ β ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠ° String. ΠΠ°ΠΏΠΈΡΡΠ²Π°Ρ Π»ΡΠ±ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ Π»ΠΈΡΠ΅ΡΠ°Π», ΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ +, ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠΎΠΊΠ°, ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΡΠ²Π½ΠΎ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° new.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
"abc"+"def"
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΎ ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° String. ΠΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΌΠΈ Π»ΠΈΡΠ΅ΡΠ°Π»Π°ΠΌΠΈ, ΡΡΠ΅ΡΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ.
ΠΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° β ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠ΅ΡΡΡΡΠΎΠ΅ΠΌΠΊΠΈΡ Π² Java. ΠΠΎΡΡΠΎΠΌΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ·Π±Π΅Π³Π°ΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΡ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°ΠΌΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ°ΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΡ ΠΈ Π²ΡΡΠ°Π²ΠΈΡ Π² ΠΊΠΎΠ΄ ΡΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΡΠΎΠΊΡΠ°ΡΠΈΠ² ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² Π²Π΅ΡΡΠΈΠΈ Java 1.1 Π±ΡΠ»Π° Π²Π²Π΅Π΄Π΅Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ reflection, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΠ°ΠΌ, ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΈ ΠΏΠΎΠ»ΡΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π»ΠΈΡΡ ΠΈΡ ΠΈΠΌΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ Π²ΠΈΠ΄Π΅. Π‘ Π΅Π΅ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π±Π΅Π· ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° new, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Π°, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΡΠ΅Π΄ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ , Π° ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ° ΠΈ ΠΏΠΎΡΠΎΠΌΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΡΡΡΠ΅ Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ. ΠΡΠ΅ ΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ Π΅Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ:
Point p = null;
try {
// Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π»ΠΈΡΡ
// ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° Point, ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅ΡΡΡ
// ΠΎΠ±ΡΠ΅ΠΊΡ Π±Π΅Π· ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°
new p=(Point)Class.forName("Point").newInstance();
} catch (Exception e) { // ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ
System.out.println(e);
}
ΠΠ±ΡΠ΅ΠΊΡ Π²ΡΠ΅Π³Π΄Π° "ΠΏΠΎΠΌΠ½ΠΈΡ", ΠΎΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ½ Π±ΡΠ» ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΊΠ°ΠΊ ΡΠΆΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π»ΠΎΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡΠ»ΠΊΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅ΠΌ Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. Π‘Π½Π°ΡΠ°Π»Π° ΠΎΠΏΠΈΡΠ΅ΠΌ Π΄Π²Π° ΠΊΠ»Π°ΡΡΠ°, Parent ΠΈ Π΅Π³ΠΎ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊ Child:
// ΠΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡ Parent
class Parent {
}
// ΠΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡ Child ΠΈ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌ
// Π΅Π³ΠΎ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° Parent
class Child extends Parent {
}
ΠΠΎΠΊΠ° Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»Ρ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΠ°Π»Π΅Π΅ ΠΎΠ±ΡΡΠ²ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈ ΠΏΡΠΎΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°:
Parent p = new Child();
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΈΠΏΠ° Parent ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΠΉ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° Child.
ΠΠ°Π΄ ΡΡΡΠ»ΠΎΡΠ½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
* ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΠΎΠ»ΡΠΌ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
* ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ instanceof (Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π±ΡΠ»Π΅Π²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅)
* ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ == ΠΈ != (Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π±ΡΠ»Π΅Π²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅)
* ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ²
* ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Ρ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ ?:
* ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠΎ ΡΡΡΠΎΠΊΠΎΠΉ +
ΠΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΠΎΠ»ΡΠΌ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ Π½Π°Π΄ ΡΡΡΠ»ΠΎΡΠ½ΡΠΌΠΈ Π²Π΅Π»ΠΈΡΠΈΠ½Π°ΠΌΠΈ. ΠΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Π° . (ΡΠΎΡΠΊΠ°). ΠΡΠΈΠΌΠ΅ΡΡ Π΅Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ instanceof, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ, ΠΎΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΡΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. Π‘Π»Π΅Π²Π° ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ, Π° ΡΠΏΡΠ°Π²Π° β ΠΈΠΌΡ ΡΠΈΠΏΠ°, Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Parent p = new Child();
// ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ p ΡΠΈΠΏΠ° Parent
// Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ ΡΠΈΠΏΠΎΠΌ Child
print(p instanceof Child);
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ true. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ instanceof ΠΎΠΏΠΈΡΠ°Π΅ΡΡΡ Π½Π΅ Π½Π° ΡΠΈΠΏ ΡΡΡΠ»ΠΊΠΈ, Π° Π½Π° ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½Π° ΡΡΡΠ»Π°Π΅ΡΡΡ. ΠΠΎ ΡΡΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΡΠΈΠ½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ» ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΊ ΡΠΆΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½:
// ΠΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΈ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌ
// Π΅Π³ΠΎ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° Child
class ChildOfChild extends Child { }
Π’Π΅ΠΏΠ΅ΡΡ Π·Π°Π²Π΅Π΄Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°:
Parent p = new ChildOfChild();
print(p instanceof Child);
Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΈΠΏΠ° Parent, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΠΉ ΠΎΡ ChildOfChild. ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ instanceof Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΡΡΡΠ»ΠΊΠΈ ΡΠΈΠΏΠ° Parent Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ Child, ΠΏΡΠΈΡΠ΅ΠΌ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½ Π½ΠΈ ΠΎΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ, Π½ΠΈ ΠΎΡ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²Π΅ΡΠ½Π΅Ρ true, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ»Π°ΡΡ, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½, Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ Child.
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»Π°ΡΡ:
class Child2 extends Parent {
}
Π ΡΠ½ΠΎΠ²Π° ΠΎΠ±ΡΡΠ²ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠ° Parent:
Parent p=new Child();
print(p instanceof Child);
print(p instanceof Child2);
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ p ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ Parent, Π° Π·Π½Π°ΡΠΈΡ, ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠΈΠΏΠ° Child ΠΈΠ»ΠΈ Child2. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ instanceof ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΠΈΡΡΠ°ΡΠΈΠΈ: