ΠΊΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ java
ΠΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² (Generics)
Π ΡΠ·ΡΠΊΠ΅ Java ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡΡ Π±Π΅Π· ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠ»Π°ΡΡ Point Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΠΊΠΈ Π½Π° ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ x, y. Π Π·Π΄Π΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ ΡΡΠ°Π·Ρ Π²ΡΡΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ: ΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Ρ ΡΡΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ? ΠΡΠ»ΠΈ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ x, y, ΡΠΎ Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ ΡΠΈΠΏ int. ΠΡΠ»ΠΈ ΠΆΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΎ ΡΠΈΠΏ float ΠΈΠ»ΠΈ double. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ ΡΠΈΠΏ double ΠΈ Ρ ΡΠ°Π½ΠΈΡΡ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΈ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎ ΡΡΠΎ Π½Π΅ Π»ΡΡΡΠΈΠΉ ΠΏΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½Π°Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ Π΄ΠΎΠ»ΡΡΠ΅ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠΉ. Π Π΄Π»Ρ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΉ ΡΠΈΠΏ. ΠΠ»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π² Java ΠΈ Π±ΡΠ»Π° Π²Π²Π΅Π΄Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠ»Π°ΡΡΡ Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ Point Π΅Π³ΠΎ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π‘ΠΌΠΎΡΡΠΈΡΠ΅, Π·Π΄Π΅ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ° Π² ΡΠ³Π»ΠΎΠ²ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΡΡΠΎΠΈΡ Π±ΡΠΊΠ²Π° T β ΡΡΠΎ ΠΈΠΌΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠ° ΠΌΠΎΠΌΠ΅Π½Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΌΡ ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π½Π°Π΅ΠΌ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π²ΠΌΠ΅ΡΡΠΎ T. ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ ΡΠΈΠΏ Integer ΠΈ ΡΠΈΠΏ Double ΠΈ ΡΠΈΠΏ String ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠΏ ΡΠ·ΡΠΊΠ° Java (ΠΊΡΠΎΠΌΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ : int, float, double ΠΈ Ρ.ΠΏ). ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ x, y Π±ΡΠ΄ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΡΠΎΠΌΡ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎ ΠΊΠΎΠ³Π΄Π° ΡΡΠΎΡ ΡΠΈΠΏ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ? Π ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ° Point. Π’ΠΎ Π΅ΡΡΡ, Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ main() ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°, Π½ΠΎ ΠΈ Π² ΡΠ³Π»ΠΎΠ²ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
Π, Π·Π°ΡΠ΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ:
ΠΡΠ»ΠΈ ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Point Ρ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ, ΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ:
ΠΡΠΈΡΠ΅ΠΌ ΡΡΡΠ»ΠΊΠ° ptD Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΆΠ΅ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠΏ, ΡΠ΅ΠΌ ΡΡΡΠ»ΠΊΠ° pt. Π, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡ ΡΠ°ΠΊΠ°Ρ ΡΡΡΠΎΡΠΊΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅:
Π ΠΈΡΠΎΠ³Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Point ΠΈ Point ΡΡΠΎ, ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΠ°Π·Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΊΠ»Π°ΡΡΠ° Point. Π ΡΡΠΎΠΌ ΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠΌΡΡΠ» ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ.
Π£ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π²ΠΎΠΏΡΠΎΡ: Π° ΠΏΠΎΡΠ΅ΠΌΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±ΡΠΊΠ²Π° T? ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π΅ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π΄ΡΡΠ³ΡΡ Π±ΡΠΊΠ²Ρ ΠΈΠ»ΠΈ ΡΠ»ΠΎΠ²ΠΎ? ΠΠ°, ΠΌΠΎΠΆΠ½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Point Π±ΡΠ΄Π΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ:
ΠΠΎ, Π² ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ½ΡΡΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΎΡΡΠΎ ΠΎΠ΄Π½Ρ Π±ΡΠΊΠ²Ρ T.
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ JDK7 ΠΏΠΎΡΠ»Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° new ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ³Π»ΠΎΠ²ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΈΠΏΠ°(ΠΎΠ²), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ:
ΠΡΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½Π°Ρ Π·Π°ΠΏΠΈΡΡ ΠΈ Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠΈΡΡ Π² ΡΠ΅ΠΊΡΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΊΠ»Π°ΡΡ Point ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ. ΠΠ½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
Π‘ΠΌΠΎΡΡΠΈΡΠ΅, Π·Π΄Π΅ΡΡ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠΏ T Ρ Π΅Π³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π±ΡΠ΄ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Π²ΠΌΠ΅ΡΡΠΎ T Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΈΠΏ:
ΠΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π»ΠΈ Π±Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠΎΡΠΊΠΈ:
ΠΠΎ Π²Π΅ΡΠ½ΡΡΡ ΡΡΠ°Π·Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΡΠΎΡΠΊΠΈ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅:
ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Java Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π° Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅Π»ΡΠ·Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ new Ρ Π½Π΅ΠΊΠΈΠΌ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌ ΡΠΈΠΏΠΎΠΌ. ΠΠΎ ΠΊΠ°ΠΊ ΠΆΠ΅ ΡΠΎΠ³Π΄Π° Π±ΡΡΡ, Π΅ΡΠ»ΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ? ΠΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ. ΠΡΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π½Π° Π²Π΅ΡΡΠΈΠ½Π΅ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΈΠΌΠ΅ΡΡ ΠΊΠ»Π°ΡΡ Object. ΠΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ°:
Π, Π·Π°ΡΠ΅ΠΌ, Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ main Π²ΡΠ·Π²Π°ΡΡ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ:
Π’Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΉΡΠΈ ΠΈΠ· ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ. Π Π³Π»ΡΠ΄Ρ Π½Π° ΡΡΠΈ ΡΡΡΠΎΡΠΊΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΌΡΡΠ»Ρ: Π° Π·Π°ΡΠ΅ΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π»ΠΈ ΡΡΠΈ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ Object Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ ? ΠΠ°, ΡΠ°ΠΊ ΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ, Π½ΠΎ ΡΡΠΎ ΠΌΠ΅Π½Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ². Π, Π²ΠΎ-Π²ΡΠΎΡΡΡ , Π½Π΅ Π±ΡΠ»ΠΎ Π±Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΡΠΎΠ²Π΅ΡΡΠ°Π΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠ΅ΠΌ Ρ ΡΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½ΡΡ Object.
ΠΠ»Π°ΡΡ Ρ Π΄Π²ΡΠΌΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ
Π― Π΄ΡΠΌΠ°Ρ, ΠΎΠ±ΡΠ°Ρ ΠΈΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ½ΡΡΠ½Π°. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°ΠΆΠΎΠΊ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΠΊΠ»Π°ΡΡ Ρ Π΄Π²ΡΠΌΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ. Π§ΡΠΎΠ±Ρ Π½Π΅ ΡΡΠ»ΠΎΠΆΠ½ΡΡΡ Π½Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, Π² ΠΊΠ»Π°ΡΡ Point Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ id ΠΈ ΡΠΈΠΏΠΎΠΌ V:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π²ΡΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ. ΠΡ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ Π² ΡΠ³Π»ΠΎΠ²ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΡΠΊΠ°Π·Π°Π»ΠΈ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΏ V ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΅Π³ΠΎ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»Ρ id. Π’Π°ΠΊΠΆΠ΅ Ρ Π½Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ getId(), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠΎ ΠΏΠΎΠ»Π΅. Π’Π΅ΠΏΠ΅ΡΡ, ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π΄Π²Π° ΡΠΈΠΏΠ°:
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΉ ΡΠΈΠΏ Π΄Π»Ρ id, Π° Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ β ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π½ΠΈΠΆΠ΅ ΠΏΠΎΠ»Ρ id ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ 1, Π° Π΄Π»Ρ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° β ΡΡΡΠΎΠΊΡ «point_1». ΠΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π½ΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°.
ΠΡΠ°ΠΊ, Π½Π° ΡΡΠΎΠΌ Π·Π°Π½ΡΡΠΈΠΈ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ (Generics) ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ° ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΡΡΡ ΡΠ΅ΠΌΡ ΠΈ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°ΡΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ , ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΈΠ΄Π΅ΠΎ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
#11 ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΠΠΠ)
#12 ΠΠ»Π°ΡΡΡ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠΎΠ²
#13 ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ, ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ this, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ
#14 ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°, ΡΠ΅ΡΡΠ΅ΡΡ ΠΈ Π³Π΅ΡΡΠ΅ΡΡ, public, private, protected
#15 ΠΠ°ΠΊΠ΅ΡΡ, ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ²
#16 ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° static ΠΈ final
#17 ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ
#18 ΠΠ°ΠΊ Π΄Π΅Π»Π°Π΅ΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ²
#19 ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ super, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ instanceof
#20 ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ private ΠΈ protected, ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ
#21 ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ
#24 ΠΠ½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ
#25 ΠΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ (enum)
#26 ΠΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² (Generics)
#27 ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ², ΠΌΠ΅ΡΠ°ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ
#28 ΠΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²
Β© 2021 Π§Π°ΡΡΠΈΡΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° Π΄Π»Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΡΡΡΠ°Ρ , Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π±ΡΠΌΠ°ΠΆΠ½ΡΡ , ΡΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ. ΠΡΠ΅ ΡΠ΅ΠΊΡΡΡ ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΡΡΡΡ ΡΠ°ΠΉΡΠ°
BestProg
Java. ΠΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ (ΡΠ°Π±Π»ΠΎΠ½Ρ). ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΡ. ΠΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΠΎΠΈΡΠΊ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΡΡΡΠ°Ρ :
1. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Β«ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅Β» (ΡΠ°Π±Π»ΠΎΠ½) Π² ΡΠ·ΡΠΊΠ΅ Java? Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΈΠΏ? ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
ΠΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ β ΡΡΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ ΡΠ΅Π»ΡΡ Π΅Π³ΠΎ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ) Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΡΡΠ»ΠΎΡΠ½ΡΠΉ ΡΠΈΠΏ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ· ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π² Π΄ΡΡΠ³ΠΎΠΉ (ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ) ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ.
2. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΡΠ·ΡΠΊΠ΅ Java Π΄Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°:
3. ΠΠ±ΡΠ°Ρ ΡΠΎΡΠΌΠ° ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ
Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΎΠΏΠ΅ΡΠΈΡΡΠ΅Ρ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΈΠΏΠΎΠΌ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±ΡΠ°Ρ ΡΠΎΡΠΌΠ° ΠΊΠ»Π°ΡΡΠ° ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄:
ΠΠ±ΡΠ°Ρ ΡΠΎΡΠΌΠ° ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΡΠΈΠΏ T
ΡΠΎ Π² ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΠΈΠΏ T
ΠΠΎΡΠ»Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π΄Π»Ρ ΡΠΈΠΏΠ° Integer Π±ΡΠ΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ
Π Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΡΠΈΠΏ Integer Π΅ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΡΠΈΠΏΠ°.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ° Π΄Π»Ρ ΡΠΈΠΏΠ° Double ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅
ΠΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ SomeClass ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ².
4. ΠΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ²?
Π’ΠΎ Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π·Π°Π΄Π°Π½ ΠΊΠ»Π°ΡΡ
ΡΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΈΠΏΠ° int ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π½Π΅ ΡΠ΄Π°ΡΡΡΡ
5. ΠΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² Π΄Π²ΡΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΠ΅
ΠΠ΅ΡΠΎΠ΄ SearchKey() ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
6. ΠΡΠΈΠΌΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Type
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
7. ΠΡΠΈΠΌΠ΅Ρ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΡΠΈΠΏΠ°
ΠΡΠΈΡΠ΅Π», ΡΠ²ΠΈΠ΄Π΅Π», ΠΎΠ±ΠΎΠ±ΡΠΈΠ»: ΠΏΠΎΠ³ΡΡΠΆΠ°Π΅ΠΌΡΡ Π² Java Generics
Java Generics β ΡΡΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ°ΠΌΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π·Π° Π²ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΡΠ·ΡΠΊΠ° Java. Β«ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈΒ», Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Ρ Java 5, ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Java Collection Framework ΠΏΡΠΎΡΠ΅, ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π΅Π΅. ΠΡΠΈΠ±ΠΊΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠΏΠΎΠ², ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠ° ΠΈ ΡΠ°ΠΌ ΡΠ·ΡΠΊ Java ΡΡΠ°Π» Π΅ΡΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π΅Π΅. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΊΠ°ΠΆΡΡΡΡΡΡ ΠΏΡΠΎΡΡΠΎΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ², ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ ΡΡΡΠ΄Π½ΠΎΡΡΡΠΌΠΈ ΠΏΡΠΈ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. Π ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎΠ± ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Java Generics, ΡΡΠΎΠ±Ρ ΡΡΠΈΡ ΡΡΡΠ΄Π½ΠΎΡΡΠ΅ΠΉ Ρ Π²Π°Ρ Π±ΡΠ»ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΠ΅. ΠΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π³ΡΡΡ Π² Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°Ρ , ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ΄Π½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠΈ ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΠΈ Π² ΡΠ΅ΠΌΡ.
Π Π°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΠΌΠΈ
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π±Π°Π½ΠΊΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ ΡΡΠΌΠΌΡ ΡΠ±Π΅ΡΠ΅ΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΡΠ΅ΡΠ°Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ². ΠΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Β«Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ²Β» ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΡΠΌΠΌΡ Π²ΡΠ³Π»ΡΠ΄Π΅Π» ΡΠ°ΠΊ:
Π‘ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Generics Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΡΠΈΠΏΠ° ΠΎΡΠΏΠ°Π»Π°:
ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΡΡΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠΎΠΆΠ΅ ΠΎΡΠΏΠ°Π΄Π°Π»Π°. ΠΡΠ»ΠΈ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ( casting ) Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΡΠΈΠ½ΡΠΈΠΏ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ
Π’ΠΈΠΏ | ΠΠΎΠ΄ΡΠΈΠΏ |
Number | Integer |
List | ArrayList |
Collection | List |
Iterable | Collection |
ΠΡΠΈΠΌΠ΅ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΡΠΈΠΏ/ΠΏΠΎΠ΄ΡΠΈΠΏ
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π² Java:
ΠΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ, ΠΊΠΎΠ½ΡΡΠ°Π²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ ΠΈ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ
ΠΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ΅ΡΠ΅Π· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ arr ΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ΄Π° ΡΠΈΡΠ»ΠΎ 42, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ ArrayStoreException Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ 42 ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ ΡΡΡΠΎΠΊΠΎΠΉ, Π° ΡΠΈΡΠ»ΠΎΠΌ. Π ΡΡΠΎΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΠΊΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Java: ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΠΈ ΡΡΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΠΎΠΌΠ°ΡΡΡΡ ΡΠΆΠ΅ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅.
Β«ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈΒ» ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ½Ρ. ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
Wildcards
ΠΡΠ΅Π³Π΄Π° Π»ΠΈ Generics ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΡ? ΠΠ΅Ρ. ΠΡΠΈΠ²Π΅Π΄Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ:
ΠΡΠΎ ΠΊΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ. List β ΠΏΠΎΠ΄ΡΠΈΠΏ List
extends B β ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡ
Π½Π΅ΠΉ Π³ΡΠ°Π½ΠΈΡΡ super B β ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³ΡΠ°Π½ΠΈΡΡ Π³Π΄Π΅ B β ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π³ΡΠ°Π½ΠΈΡΡ 2. ΠΠΎΡΠ΅ΠΌΡ Π½Π΅Π»ΡΠ·Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Π½ΠΈΠΆΠ΅? The Get and Put Principle ΠΈΠ»ΠΈ PECS (Producer Extends Consumer Super)ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ wildcard Ρ Π²Π΅ΡΡ Π½Π΅ΠΉ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³ΡΠ°Π½ΠΈΡΠ΅ΠΉ Π΄Π°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠΏΠΎΠ². ΠΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠ°ΡΡ, Π² Π΄ΡΡΠ³ΠΎΠΉ β ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΏΠΈΡΡΠ²Π°ΡΡ (ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΠΈΡΠ°ΡΡ null Π΄Π»Ρ extends ΠΈ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Object Π΄Π»Ρ super ). Π§ΡΠΎΠ±Ρ Π±ΡΠ»ΠΎ Π»Π΅Π³ΡΠ΅ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠΉ wildcard ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏ PECS β Producer Extends Consumer Super. ΠΈ Raw ΡΠΈΠΏΡΠΡΠ»ΠΈ ΠΌΡ ΠΎΠΏΡΡΡΠΈΠΌ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ Π·Π΄Π΅ΡΡ: ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ Π²ΡΠ·Π²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄Π° Ρ Raw ΡΠΈΠΏΠ°, ΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ΄Π°ΡΡ Π½Π°ΠΌ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Β«Unchecked callΒ». ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΈΠΏ Raw ΡΠΈΠΏΡ, ΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ΄Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Β«Unchecked assignmentΒ». ΠΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Wildcard CaptureΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠΈΡΠΊΠ° Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎ Wildcard Capture ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π·Π΄Π΅ΡΡ ΠΈ Π·Π΄Π΅ΡΡ. ΠΡΠ²ΠΎΠ΄ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΠ°ΠΠΎΡ Π΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ° Enum: Multiple bounds (ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ)ΠΡΠ²ΠΎΠ΄ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΈΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²Π΅ΡΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ. Π ΡΠ»ΡΡΠ°Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π»Π΅Π²Π°Ρ Π³ΡΠ°Π½ΠΈΡΠ° (ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π·Π°ΡΠΈΡΠ°Π½ΠΈΡ (Type Erasure). Type ErasureΠΠ° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅ Π½ΠΈΠΆΠ΅ Π΄Π²Π° ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ»Π΅Π²Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ compile-time error, Π° ΡΠΏΡΠ°Π²Π° Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠΎΡΠ΅ΠΌΡ? Reifiable ΡΠΈΠΏΡΠΠΎΡΠ΅ΠΌΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΠ΄Π½ΠΈΡ ΡΠΈΠΏΠ°Ρ Π΄ΠΎΡΡΡΠΏΠ½Π°, Π° ΠΎ Π΄ΡΡΠ³ΠΈΡ Π½Π΅Ρ? ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ·-Π·Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° Π·Π°ΡΠΈΡΠ°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΠΏΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Π°. ΠΡΠ»ΠΈ ΠΎΠ½Π° ΠΏΠΎΡΠ΅ΡΡΠ»Π°ΡΡ, ΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π±ΡΠ΄Π΅Ρ ΡΠΆΠ΅ Π½Π΅ reifiable. Π’ΠΎ Π΅ΡΡΡ ΠΎΠ½Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Π°. ΠΡΠ»ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Π° β ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, reifiable. Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ΅ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ β ΡΡΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΡ ΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠ²ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΈΠΏΠΎΠ² Java. Π’Π°ΠΊ ΡΠ΄Π΅Π»Π°Π»ΠΈ, Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. ΠΠ° ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΏΠ»Π°ΡΠΈΡΡ β ΠΏΠΎΠ»Π½Π°Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°. Π Π΅ΡΠ΅ ΠΎΠ΄Π½Π° Π·Π°Π΄Π°ΡΠΊΠ°. ΠΠΎΡΠ΅ΠΌΡ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅ Π½Π΅Π»ΡΠ·Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ Exception? ΠΠ°ΠΆΠ΄ΠΎΠ΅ catch Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² try-catch ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠΈΠΏ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΡΡΠΎ ΡΠ°Π²Π½ΠΎΡΠΈΠ»ΡΠ½ΠΎ instanceof), ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠΈΠΏ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Reifiable. ΠΠΎΡΡΠΎΠΌΡ Throwable ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΡΠΈΠΏΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Ρ. Unchecked WarningsΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π°ΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Unchecked Warning β ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ ΡΠΌΠΎΠ³ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠΎΠ²Π΅Π½Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΡΠΈΡ ΡΠΈΠΏΠΎΠ². ΠΡΠΎ Π½Π΅ ΠΎΡΠΈΠ±ΠΊΠ°, Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΡΠ°ΠΊ ΡΡΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ. ΠΠΎ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ΅-ΡΠ°ΠΊ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ. Heap PollutionΠΠ°ΠΊ ΠΌΡ ΡΠΏΠΎΠΌΡΠ½ΡΠ»ΠΈ ΡΠ°Π½Π΅Π΅, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° Raw ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Β«Unchecked assignmentΒ». ΠΡΠ»ΠΈ ΠΌΡ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎ, ΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠΈΡΡΠ°ΡΠΈΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ » Heap Pollution » (Π·Π°Π³ΡΡΠ·Π½Π΅Π½ΠΈΠ΅ ΠΊΡΡΠΈ). ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ: Π ΡΡΡΠΎΠΊΠ΅ (1) ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π΅Ρ ΠΎΠ± Β«Unchecked assignmentΒ». Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ: Java ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ Π² ΡΡΡΠΎΠΊΠ΅ (1). ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ. ΠΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ add Π² ΡΡΡΠΎΠΊΠ΅ (2), ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Unchecked call β ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π΅Ρ Π½Π°Ρ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠ΅. Π ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΌΡ ΠΆΠ΅ ΠΏΡΡΠ°Π΅ΠΌΡΡ Π² ΡΠΏΠΈΡΠΎΠΊ ΡΡΡΠΎΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ. ReflectionΠ₯ΠΎΡΡ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π°ΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ΡΡΠΈΡΠ°Π½ΠΈΡ (type erasure), ΠΊΠΎΠ΅-ΠΊΠ°ΠΊΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Reflection. Π‘ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Generics ΠΊΠ»Π°ΡΡ java.lang.Class ΡΡΠ°Π» ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΠΎΡ ΡΡΠΎΡ ΠΊΠΎΠ΄: ΠΡΠ²ΠΎΠ΄ΠΡΠ»ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Reifiable. Π Reifiable ΡΠΈΠΏΠ°ΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ: ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ, Π½Π΅ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΡ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΡ Ρ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, Raw ΡΠΈΠΏΡ ΠΈ ΠΌΠ°ΡΡΠΈΠ²Ρ, ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π»ΡΡΡΡΡ reifiable. ΠΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Unchecked Warnings ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Β«Π·Π°Π³ΡΡΠ·Π½Π΅Π½ΠΈΡ ΠΊΡΡΠΈΒ» ΠΈ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Reflection Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ Reifiable. ΠΠΎ Reflection ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΎ ΡΠΈΠΏΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ ΠΎ ΡΠΈΠΏΠ΅ ΠΏΠΎΠ»Π΅ΠΉ ΠΊΠ»Π°ΡΡΠ°. Type InferenceΠ’Π΅ΡΠΌΠΈΠ½ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΠΊΠ°ΠΊ Β«ΠΡΠ²ΠΎΠ΄ ΡΠΈΠΏΠ°Β». ΠΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ (Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ) ΡΠΈΠΏ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°: Π‘ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°ΠΉΠΌΠΎΠ½Π΄-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π² Java 7 ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΈΠΏ Ρ ArrayList : ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Ρ Π½Π°Ρ Π΅ΡΡΡ Π²ΠΎΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠ²ΡΠ·Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ: Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° List.nil() ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½ ΠΈΠ· ΠΏΡΠ°Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ: ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π²ΡΠ±ΠΎΡΠ° ΡΠΈΠΏΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ° Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° List.nil() Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ String β ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² JDK 7, Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ. ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°Π·ΡΠΌΠ½ΠΎ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΈΠΏ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: Π JDK 7 ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π±Ρ compile-time error. Π Π² JDK 8 ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ. ΠΡΠΎ ΠΈ Π΅ΡΡΡ ΠΏΠ΅ΡΠ²Π°Ρ ΡΠ°ΡΡΡ JEP-101, Π΅Π³ΠΎ ΠΏΠ΅ΡΠ²Π°Ρ ΡΠ΅Π»Ρ β Π²ΡΠ²ΠΎΠ΄ ΡΠΈΠΏΠ° Π² ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ ΡΡΠΎ Π² Π²Π΅ΡΡΠΈΡΡ Π΄ΠΎ JDK 8 β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²Π½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ° ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°: ΠΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ JEP-101 Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ Π±Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΈΠΏ Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: ΠΠΎ Π΄Π°Π½Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° Π½Π΅ ΡΠ΅ΡΠ΅Π½Π° Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ, ΠΈ Π²ΡΡΠ΄ Π»ΠΈ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠ°ΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² Π±ΡΠ΄ΡΡΠΈΡ Π²Π΅ΡΡΠΈΡΡ JDK Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΡΡΠΎΠΌ ΠΈΡΡΠ΅Π·Π½Π΅Ρ, Π½ΠΎ ΠΏΠΎΠΊΠ° Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π²ΡΡΡΠ½ΡΡ: ΠΠΎΡΠ»Π΅ Π²ΡΡ ΠΎΠ΄Π° JEP 101 Π½Π° StackOverflow ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΏΠΎ ΡΠ΅ΠΌΠ΅. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ Π½Π° 7-ΠΉ Π²Π΅ΡΡΠΈΠΈ, Π½Π° 8-ΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈΠ½Π°ΡΠ΅ β ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ? ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°: ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π½Π° JDK1.8: Π ΡΠ΅ΠΏΠ΅ΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π½Π° JDK1.7 β ΡΠΎ Π΅ΡΡΡ Π½Π° Java 7: Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Oracle Π²ΡΠΏΡΡΡΠΈΠ» ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ Ρ JDK1.7 Π½Π° JDK 1.8 Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ Π½Π° Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ Java, ΠΈ ΡΠΎ, ΠΊΠ°ΠΊ ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π² ΠΊΠΎΠ΄Π΅ Π²ΡΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π½Π° Java 8 Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π½Π° Java 7, ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Π²ΡΡΡΠ½ΡΡ: ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΠ° ΡΡΠΎΠΌ ΠΌΠΎΠΉ ΡΠ°ΡΡΠΊΠ°Π· ΠΎ Java Generics ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΠΊΠΎΠ½ΡΡ. ΠΠΎΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ ΡΠ΅ΠΌΡ: ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ (Java, ΠΎΠ±ΡΡΠ°ΡΡΠ°Ρ ΡΡΠ°ΡΡΡ)ΠΡΠ΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅ΠΠ° ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ Π±ΡΠ»Π° Π²Π·ΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· 6-ΠΎΠΉ Π³Π»Π°Π²Ρ ΠΊΠ½ΠΈΠ³ΠΈ Β«Oracle Certified Professional Java SE 7 Programmers Exams 1Z0-804 and 1Z0-805Β». ΠΠ½Π° Π±ΡΠ»Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° (ΠΊΠΎΠ΅-Π³Π΄Π΅ ΠΎΠ±ΡΠ΅Π·Π°Π½Π°, Π° ΠΊΠΎΠ΅-Π³Π΄Π΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Google ΠΈ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ). ΠΠ΄Π΅ΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΠ΅ Π½ΡΠ°Π½ΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² β Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΡΠΈΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΠ±ΠΎΠ±ΡΡΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ. Π Java, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ J2SE 5.0, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° C++. ΠΠΈΠΆΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ generics (Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ) ΠΈΠ»ΠΈ > β ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠΏΡΡΡΠΈΠΌ ΠΌΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅ΠΌ ΠΎ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°Ρ ΠΈ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΡΠ²ΠΎΠ΄ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° (Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠ³ΡΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ). ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ: Π Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π±ΡΠ»Π° Π΄ΠΎΠΏΡΡΠ΅Π½Π° ΠΎΡΠΈΠ±ΠΊΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: Π’Π΅ΠΏΠ΅ΡΡ Π½Π° Π²ΡΠ΅ΠΌΡ Π·Π°Π±ΡΠ΄Π΅ΠΌ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² (ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΠΌ ΡΡ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΡ): Π‘Π°ΠΌΠΎΠ΅ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ (Π΄Π»Ρ ΠΌΠ΅Π½Ρ) Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ΅, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ Π½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ: ΠΡΠΌΠ°Ρ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠΎΠ³Π»Π°ΡΡΡΡΡ, ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Β«Π»ΡΡΡΠ΅Β» ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Ρ.ΠΊ. ΡΠΈΡΡΠΎ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΏΠ°ΡΡΡ ΡΡΠ΄Π°, ΠΊΡΠ΄Π° Π΅ΠΌΡ Π»ΡΡΡΠ΅ Π±Ρ ΠΈ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ. ΠΡΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠ΅ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²ΠΎ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ². Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°ΠΌ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠ΄ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π»ΡΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΡΡΠΎΠΊΡ ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΡ BoxPrinter: ΠΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ° Π² ΡΠ³Π»ΠΎΠ²ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ » » ΡΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠΌΡ ΡΠΈΠΏΠ° «Π’», ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ°. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π’ β ΡΡΠΎ ΡΠΈΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ ΠΏΠΎΠ·ΠΆΠ΅ (ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ°). ΠΠ½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ T Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»Ρ: ΠΠ΄Π΅ΡΡ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊ-ΡΠΈΠΏΠ° (generic type), Ρ.ΠΎ. Π΅Ρ ΡΠΈΠΏ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·Π°Π½ ΠΏΠΎΠ·ΠΆΠ΅, ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° BoxPrinter. Π main()-ΠΌΠ΅ΡΠΎΠ΄Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅: ΠΠ΄Π΅ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ Π’ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ Integer. ΠΡΡΠ±ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° value1 Π²ΡΠ΅ ΠΏΠΎΠ»Ρ Π’-ΡΠΈΠΏΠ° Π΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ° BoxPrinter ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΏΠΎΠ»ΡΠΌΠΈ ΡΠΈΠΏΠ° Integer (private Integer val;). ΠΠ°ΠΊ ΠΈ Π² Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠΈ val Ρ ΡΠΈΠΏΠΎΠΌ Π’, Π²Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅, ΡΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° BoxPrinter ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ T. ΠΠΎΠ·ΠΆΠ΅ Π² main()-ΠΌΠ΅ΡΠΎΠ΄Π΅, ΠΊΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π² new, ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ Π’ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ Integer: Π’Π΅ΠΏΠ΅ΡΡ, Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° BoxPrinter, arg ΠΈ val Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±Π° ΠΈΠΌΠ΅ΡΡ ΡΠΈΠΏ T. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°: ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΌΠ΅ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π’ Π² ΠΊΠ»Π°ΡΡΠ΅ β ΠΌΠ΅ΡΠΎΠ΄ getValue(): Π’ΡΡ Π²ΡΠΎΠ΄Π΅ ΡΠΎΠΆΠ΅ Π²ΡΡ ΡΡΠ½ΠΎ β ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π·Π°Π΄Π°Π½ ΠΏΡΠΈ Π΅Π³ΠΎ (ΠΎΠ±ΡΠ΅ΠΊΡΠ°) ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊ-ΠΊΠ»Π°ΡΡΠΎΠ² ΠΌΡ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ ΠΎΠ΄Π½ΠΈΠΌ Π»ΠΈΡΡ ΡΠΈΠΏΠΎΠΌ (Π’) β ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ: ΠΠ΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΈ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ: ΠΠ»ΠΌΠ°Π·Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ (Diamond syntax)ΠΠ΅ΡΠ½ΡΠΌΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°Π·Π°Π΄ ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠΎ ΡΡΡΠΎΠΊΠΎΠΉ ΠΊΠΎΠ΄Π°: ΠΡΠ»ΠΈ ΡΠΈΠΏΡ Π½Π΅ Π±ΡΠ΄ΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ: Π’ΠΎ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΎΡΠΈΠ±ΠΊΡ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ: ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Π½ΠΈΠ²ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π·Π°ΠΏΠΎΠ»Π½ΡΡΡ ΡΠΈΠΏΡ ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΈΠ±ΠΈΡΡΡΡ. Π§ΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΆΠΈΠ·Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ Π² Java 7 Π±ΡΠ» Π²Π²Π΅Π΄ΡΠ½ Π°Π»ΠΌΠ°Π·Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ (diamond syntax), Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΡΡΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΈΠΏΠ°. Π’.Π΅. ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠΈΠ΄ ΡΠΏΡΠΎΡΡΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ: Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ «<>» ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π°Π»ΠΌΠ°Π·Π½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π ΡΠ»ΡΡΠ°Π΅ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΊΠΎΠ΄Π° Π²ΡΡΠ΅ ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Pair ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊ-ΡΠΈΠΏΠΎΠΌ ΠΈ Π±ΡΠ»ΠΈ Π·Π°Π±ΡΡΡ «<>» ΠΈΠ»ΠΈ ΡΠ²Π½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° (raw type) Ρ Pair ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΌ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠΈΠΏΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π₯ΠΎΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π°, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΠ΄Π΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π²ΠΎΡ ΡΡΠΎΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°: Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π²ΠΎΡ ΡΡΠΎΡ: ΠΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ±Π° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Ρ, Π½ΠΎ Ρ Π½ΠΈΡ ΡΠ°Π·Π½Π°Ρ ΠΈΠ΄Π΅Ρ. Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ ΠΌΠ΅ΡΡΠΎ Ρ ΠΏΡΠΎΡΡΡΠΌ ΡΠΈΠΏΠΎΠΌ, Π²ΠΎ Π²ΡΠΎΡΡΠΌ β Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠΌ. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ»ΠΎΠΌΠ°Π΅ΠΌ ΡΡΠΎ Π΄Π΅Π»ΠΎ β Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Π² ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΎΡΠΈΠ±ΠΊΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (java.lang.ClassCastException), Π° Π΄Π»Ρ Π²ΡΠΎΡΠΎΠ³ΠΎ β ΠΎΡΠΈΠ±ΠΊΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π ΠΎΠ±ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° 2 ΡΠ°ΠΌΡΡ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°. ΠΡΠ»ΠΈ Π² Π΄Π²ΡΡ ΡΠ»ΠΎΠ²Π°Ρ , ΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΎΡΡΡΡ ΡΠΈΠΏΠΎΠ², Π²Ρ ΡΠ΅ΡΡΠ΅ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠΈΠΏΠΎΠ², ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ΅ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°ΠΌΠΈ. Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ (Generic methods)ΠΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ (Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊ-ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ), ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ (Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊ-ΠΌΠ΅ΡΠΎΠ΄Ρ), ΡΠΎ Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΎΠ±ΡΠΈΠ΅ ΡΠΈΠΏΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π΅ Π½Π°Π΄ΠΎ ΠΏΡΡΠ°ΡΡ Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ Π² Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊ-ΠΊΠ»Π°ΡΡΠ΅. Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ΄ΠΎΠ±Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½Π° ΠΈ ΡΠ° ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΠΈΠΏΠ°ΠΌ. (ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΠΊΠ»Π°ΡΡΠ΅ java.util.Collections.) Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°: ΠΠ°ΠΌ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΡΠΎ: » » ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΎ ΠΏΠΎΡΠ»Π΅ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ² «public» ΠΈ «static», Π° Π·Π°ΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΈΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ Π΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. Π’Π°ΠΊΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΎΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², Π³Π΄Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ°. Π’Π΅Π»ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ β Π² ΡΠΈΠΊΠ»Π΅ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (val). ΠΡ ΠΈ Π² main()-ΠΌΠ΅ΡΠΎΠ΄Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ·ΠΎΠ² Π½Π°ΡΠ΅Π³ΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°: Π‘ΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π·Π΄Π΅ΡΡ Π½Π΅ Π·Π°Π΄Π°Π½ ΡΠ²Π½ΠΎ ΡΠΈΠΏ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. ΠΠ»Ρ IntList β ΡΡΠΎ Integer ΠΈ 100 ΡΠΎΠΆΠ΅ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π² Integer. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΡΠ°Π²ΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΠΈΠΏΡ Π’ β Integer. Π ΡΠ΅ΠΉΡΠ°Ρ Π²ΠΎΠΏΡΠΎΡ β ΠΊΠ°ΠΊΠ°Ρ (-ΠΈΠ΅) ΠΈΠ· Π½ΠΈΠΆΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΡ ΡΡΡΠΎΠΊ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ? ΠΡΠ²Π΅Ρ Ρ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠ΅ΠΌ: Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΡΡΠΈ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊ-ΡΠΈΠΏΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ 3. ΠΠΎΡΠ΅ΠΌΡ ΠΆΠ΅ ΡΡΠΎ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ? ΠΡΠ΄Π΅ΠΌ Π΄ΡΠΌΠ°ΡΡ ΠΎΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ β Π΄ΠΎΠΏΡΡΡΠΈΠΌ 3-ΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄: Wildcards (ΠΠ°ΡΠΊΠΈ)Π‘Π΅ΠΉΡΠ°Ρ Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Wildcard Parameters (wildcards). ΠΡΠΎΡ ΡΠ΅ΡΠΌΠΈΠ½ Π² ΡΠ°Π·Π½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ: ΠΌΠ΅ΡΠ°ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, Π³ΡΡΠΏΠΏΠΎΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΡΠ°Π±Π»ΠΎΠ½Ρ, ΠΌΠ°ΡΠΊΠΈ ΠΈ Ρ.Π΄. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ «ΠΌΠ°ΡΠΊΡ», ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π² Π½Π΅ΠΉ ΠΌΠ΅Π½ΡΡΠ΅ Π±ΡΠΊΠ²β¦ ΠΠ°ΠΊ Π±ΡΠ»ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅ Π²ΠΎΡ ΡΠ°ΠΊΠ°Ρ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π° Π½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ: ΠΠΎ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΡ ΠΎΠΆΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ: ΠΠΎΠ΄ ΠΌΠ°ΡΠΊΠΎΠΉ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π²ΠΎΡ ΡΡΡ ΡΡΡΠΊΡ β » «. Π ΡΠ΅ΠΉΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎ ΠΌΠ°ΡΠΊΡ ΠΈ ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ: ΠΠ΅ΡΠΎΠ΄ printList ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π² ΡΠΈΠ³Π½Π°ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΠΌΠ°ΡΠΊΠ°: Π ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ ΡΠΏΠΈΡΠΊΠΎΠ² Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ (Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Integer ΠΈ String). ΠΠ΄Π½Π°ΠΊΠΎ Π²ΠΎΡ ΡΡΠΎ Π½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ: Π Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ: Π’ΡΡ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π΅Ρ ΠΎΡΠΎΡΠΎ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ numList Ρ ΡΠ°Π½ΠΈΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ. ΠΠΎΠΏΡΡΡΠΈΠΌ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΠΊ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° Ρ ΡΠ°Π½ΠΈΠ»Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΈΡΠΊΠΈ ΡΠΈΡΠ΅Π». Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π΅ΡΡΡ: ΠΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ, Π° Π²ΡΡ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΠΊΠΈ ΠΌΡ Π·Π°Π΄Π°Π»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ numList ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΡΡΡΠ»ΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠΏΠΈΡΠΎΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΡ Number, Π° Π²ΡΡ ΠΈΠ·-Π·Π° ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ: List numList. Π’ΡΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΌΠ°ΡΠΊΠ΅ Π·Π°Π΄Π°ΡΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ β ΡΠ΅ΠΏΠ΅ΡΡ numList ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠΏΠΈΡΠΊΠ° Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠΈΠΏΠΎΠ². Double ΠΊΠ°ΠΊ ΠΈ Integer Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ Number, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ. Π’ΠΎ, ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌΠΈ ΠΌΠ°ΡΠΊΠ°ΠΌΠΈ (Bounded wildcards). ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π΅ΡΡΠΌΠ° ΠΊΡΠ°ΡΠΈΠ²ΡΠΌ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ. ΠΠΎΠΏΡΡΡΠΈΠΌ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ ΡΡΠΌΠΌΡ ΡΠΈΡΠ΅Π» ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅: Double-ΡΠΈΠΏ Π±ΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ result Ρ.ΠΊ. ΠΎΠ½ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ (Ρ.Π΅. Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΡΠΈΠΏΠΎΠ²). ΠΠ° ΡΡΠΎΠΌ Π²ΡΠ΅. ΠΠ°Π΄Π΅ΡΡΡ, Π΄Π°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ Π±ΡΠ»Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ. ΠΡΠ»ΠΈ ΠΠ°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»Π°ΡΡ ΡΡΠ°ΡΡΡ, ΠΏΡΠΎΠ³ΠΎΠ»ΠΎΡΡΠΉΡΠ΅ Π·Π° Π½Π΅Π΅ ΠΠΎΠ»ΠΎΡΠΎΠ²: 175 ΠΠΎΠ»ΠΎΡΠΎΠ²Π°ΡΡ
|