// ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° hashCode()
System.out.println(new float[2].hashCode());
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ΄Π΅Ρ:
[ [email protected]
[[ [email protected]
[Ljava.lang.String;@92d342
7051261
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² Π΄Π»Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΠ°ΡΡΠΈΠ² Π²Π²Π΅Π΄Π΅Π½ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π² Java, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊΠΎΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΎΠ½ ΠΎΠΊΠ°ΠΆΠ΅Ρ Π½Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ².
Π Π°Π½Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΌΠΈ ΠΈ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ (Π½Π΅ ΡΠ²Π»ΡΡΡΠΈΠΌΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ) ΡΡΡΠ»ΠΎΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ. Π₯ΠΎΡΡ ΠΌΠ°ΡΡΠΈΠ²Ρ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ, ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡ ΡΠΈΠΏΡ Π½Π° Π΄Π²Π΅ Π³ΡΡΠΏΠΏΡ β ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΎΠΌ ΠΈΠ»ΠΈ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠΌ ΡΠΈΠΏΠ΅.
ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Π½ΡΠΌΠΈ. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° Object ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Cloneable ΠΈ Serializable. ΠΠ°ΡΡΠΈΠ² Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΡΠΈΠΌ ΡΡΠ΅ΠΌ ΡΠΈΠΏΠ°ΠΌ, ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ ΠΆΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ ΡΠ²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ². ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ², ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΎΠΌ ΡΠΈΠΏΠ΅, ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΊ ΡΠΈΠΏΡ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΌΡ Π½Π° ΡΡΡΠ»ΠΎΡΠ½ΠΎΠΌ ΡΠΈΠΏΠ΅, ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ.
ΠΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π° ΡΡΠΎΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π·Π°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠΏΠ°ΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠ°Ρ , Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π½ΠΈ ΠΏΡΠΈ ΠΊΠ°ΠΊΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ .
ΠΠ»Ρ ΡΡΡΠ»ΠΎΡΠ½ΡΡ ΠΆΠ΅ ΡΠΈΠΏΠΎΠ² ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΡΡΠΎΠ³ΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π° Π½Π΅Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΠΈΠΏΠ΅ Child, ΡΠΎ ΡΡΡΠ»ΠΊΡ Π½Π° Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠΈΠΏΡ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΠΈΠΏΠ΅ Parent.
Child c[] = new Child[3];
Parent p[] = c;
ΠΠΎΠΎΠ±ΡΠ΅, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ: ΠΌΠ°ΡΡΠΈΠ², ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΠΈΠΏΠ΅ A, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΌΠ°ΡΡΠΈΠ²Ρ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΌΡ Π½Π° ΡΠΈΠΏΠ΅ B, Π΅ΡΠ»ΠΈ ΡΠ°ΠΌ ΡΠΈΠΏ A ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΡΠΈΠΏΡ B.
// Π΅ΡΠ»ΠΈ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅:
B b = (B) new A();
// ΡΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²:
B b[]=(B[]) new A[3];
ΠΡΠΈΠΌΠ΅Π½ΡΡ ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ°ΡΡΠΈΠ² Child[][] ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Parent[][], ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌΡ ( Child[] ΠΊ Parent[] ) ΡΠ°ΠΊΠΆΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π° (ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ Child ΠΈ Parent ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌΡ Π² ΡΠΈΠ»Ρ ΠΏΡΠ°Π²ΠΈΠ» Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ).
ΠΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ, ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ Π½Π΅ΡΠ²Π½ΠΎ (ΠΊΠ°ΠΊ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅), Π° ΡΡΠΆΠ΅Π½ΠΈΡ β ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²Π½ΡΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ.
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΌ Π½Π° ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΎΠΌ ΡΠΈΠΏΠ΅. ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡ ΡΡΠ°ΡΡΠΈΡ Π² ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡΡ ΡΠΈΠΏΠΎΠ² ΡΠ²ΡΠ·Π°Π½Π°, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Ρ ΡΠ°Π·Π»ΠΈΡΠΈΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΡΡΠΌΠΈ ΠΈ ΡΡΡΠ»ΠΎΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΡΠ²Π»ΡΡΡΡΡ ΡΡΡΠ»ΠΊΠΈ, ΠΎΠ½ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ. ΠΠ°ΠΏΡΠΎΡΠΈΠ², ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΡΠΎΡΡΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΡΠ°Π½ΡΡ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ ΠΈΠ»ΠΈ Π±ΡΠ»Π΅Π²ΡΠΊΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΠΌΠΎ:
// ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
byte b[]= {1, 2, 3};
int i[]=b;
Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ b[0] ΠΈ i[0] Ρ ΡΠ°Π½ΠΈΠ»ΠΈ Π±Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ². Π‘ΡΠ°Π»ΠΎ Π±ΡΡΡ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎ Π±Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠΏΠ° Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π±ΡΠ» Π±Ρ ΡΠΎΠ·Π΄Π°Π½ Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°Π²Π½ΡΠ»ΠΈΡΡ Π±Ρ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. Π’Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° new. ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠ°Ρ , Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ.
ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², Π° Π·Π°ΡΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ System.arraycopy(), ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π² Π΄ΡΡΠ³ΠΎΠΉ.
ΠΡΠΈΠ±ΠΊΠ° ArrayStoreException
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠΏΠ°ΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΡΡΡΠ»ΠΎΡΠ½ΡΡ ΡΠΈΠΏΠ°Ρ , ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
Child c[] = new Child[5];
Parent p[]=c;
p[0]=new Parent();
Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΊΠΎΠ΄ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ΅Π½. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ. Π ΡΡΠ΅ΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΈΠΏΠ° Parent ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ°.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°. ΠΠ΅Π»ΡΠ·Ρ Π·Π°Π±ΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π»ΠΈΡΡ ΡΠΏΠΎΡΠΎΠ± Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½Π΅ΠΌΡ. Π ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΎΠ±ΡΠ΅ΠΊΡ Π²ΡΠ΅Π³Π΄Π° "ΠΏΠΎΠΌΠ½ΠΈΡ", ΠΎΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΎΠ½ Π±ΡΠ» ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½. Π‘ ΡΡΠ΅ΡΠΎΠΌ ΡΡΠΈΡ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠΉ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΠ½ΠΎ, ΡΡΠΎ Π² ΡΡΠ΅ΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅ Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΏΠΎΠΏΡΡΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΌΠ°ΡΡΠΈΠ² Child Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Parent, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ.
ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π²Π΅Π΄Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΡΠΎΡ ΠΌΠ°ΡΡΠΈΠ², Π° Π·Π½Π°ΡΠΈΡ, ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅:
c[0].onlyChildMethod();
Π³Π΄Π΅ ΠΌΠ΅ΡΠΎΠ΄ onlyChildMethod() ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΊΠ»Π°ΡΡΠ΅ Child. ΠΠ°Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ, Π° Π·Π½Π°ΡΠΈΡ, Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ° ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ c[0] ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ, Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Ρ Child.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΠ΅Π³Π΄Π° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΡΡΡΡ, ΡΡΠΎ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π½Π°ΡΡΡΠ°Π΅ΡΡΡ, ΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ArrayStoreException.
ΠΠΎΠΆΠ΅Ρ ΡΠ»ΠΎΠΆΠΈΡΡΡΡ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠ΅, ΡΡΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°Π½Π½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π΄ΡΠΌΠ°Π½Π½ΠΎΠΉ,β Π·Π°ΡΠ΅ΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΈ ΡΡΡ ΠΆΠ΅ Π·Π°Π΄Π°Π²Π°ΡΡ Π΄Π»Ρ Π½Π΅Π³ΠΎ Π½Π΅Π²Π΅ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅? ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°:
public void process(Parent[] p) {
if (p!=null && p.length>0) {
p[0]=new Parent();
}
}
ΠΠ΅ΡΠΎΠ΄ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌ, Π²ΡΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ if -Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ·ΠΎΠ² ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅:
process(new Child[3]);
Π ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΎΡΠΈΠ±ΠΊΠ° ArrayStoreException.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΠ° ΠΌΠ°ΡΡΠΈΠ² ΠΈ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ΠΠ°Π²Π΅ΡΡΠΈΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·ΠΈ ΡΠΈΠΏΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΡΠΈΠΏΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ.
ΠΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ, ΠΌΠ°ΡΡΠΈΠ²Ρ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΠΏΡΠΎΡΡΡΡ ΠΈ ΡΡΡΠ»ΠΎΡΠ½ΡΡ ΡΠΈΠΏΠ°Ρ , ΠΌΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎ.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΈΠΏΠ° ΠΌΠ°ΡΡΠΈΠ² ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½ ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ°, Π»ΠΈΠ±ΠΎ null.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΈΠΏΠ° "ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠ»ΠΎΡΠ½ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½" ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
null ;
Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ°, ΡΡΠΎ ΠΈ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ;
Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° ΠΌΠ°ΡΡΠΈΠ², ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΠΈΠΏΠ΅, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌΠΎΠΌ ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡ ΡΠΈΠΏΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΡΠ΅ ΡΡΠΈ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ»Π΅Π΄ΡΡΡ ΠΈΠ· ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ².
ΠΡΠ΅ ΡΠ°Π· Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΏΡΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Object. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΌΠΎΠ³ΡΡ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π»ΡΠ±ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ ΠΎΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ°ΠΊ ΠΈ ΠΎΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ².
Π‘Π²Π΅Π΄Π΅ΠΌ Π²ΡΠ΅ ΡΡΠΈ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΡ.
Π’Π°Π±Π»ΠΈΡΠ° Π’Π°Π±Π». 9.1.. Π’ΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΡΠΈΠΏ Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
Π’ΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
ΠΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ ΡΠΈΠΏΡ Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ΠΠ°ΡΡΠΈΠ² ΠΏΡΠΎΡΡΡΡ ΡΠΈΡΠ΅Π»
* null
* Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΠΉ Ρ ΡΠΈΠΏΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
ΠΠ°ΡΡΠΈΠ² ΡΡΡΠ»ΠΎΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ
* null
* ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΠΉ Ρ ΡΠΈΠΏΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
* ΠΌΠ°ΡΡΠΈΠ²Ρ ΡΡΡΠ»ΠΎΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΡΠ»ΠΎΠ²ΠΈΡ: Π΅ΡΠ»ΠΈ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ β ΠΌΠ°ΡΡΠΈΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΈΠΏΠ° A, ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° ΠΌΠ°ΡΡΠΈΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΈΠΏΠ° B Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ ΡΠΎΠ³Π΄Π° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° B ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌΠΎ ΠΊ A
Object
* null
* Π»ΡΠ±ΠΎΠΉ ΡΡΡΠ»ΠΎΡΠ½ΡΠΉ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΌΠ°ΡΡΠΈΠ²Ρ
ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π»Π°Π΄Π°Π»ΠΈ Π±Ρ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ, ΡΡΠΎ ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ. Π’ΠΎ Π΅ΡΡΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ Π΄Π»Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΡΠ»ΠΊΠΎΠΉ x, ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ x.clone(), Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
x == x.clone()
Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΈΡΡΠΈΠ½Π½ΡΠΌ, ΠΊΠ°ΠΊ ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
x.clone().getClass() == x.getClass()
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
x.equals(x.clone())
ΡΠ°ΠΊΠΆΠ΅ Π²Π΅ΡΠ½ΠΎ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° clone() ΠΎΡΠ»ΠΎΠΆΠ½ΡΠ΅ΡΡΡ ΡΠ΅Π»ΡΠΌ ΡΡΠ΄ΠΎΠΌ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
* ΠΊΠ»Π°ΡΡ, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° private );
* ΡΠ΅ΠΏΠΎΡΠΊΠ° Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠ»Π°ΡΡ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ, ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΈ ΠΏΠΎΠ»Ρ β Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅, Π½ΠΎ Π²Π°ΠΆΠ½ΡΠ΅ Π΄Π»Ρ Π²ΠΎΡΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°;
* Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ; ΠΎΠ΄Π½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π»ΠΈΡΠ½ΠΈΠΌΠΈ, Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΡΡΠ΅Π±ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ;
* Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅Π»ΡΠ·Ρ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ, Π΄Π°Π±Ρ Π½Π΅ Π½Π°ΡΡΡΠΈΡΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠΎΡΡΠΎΠΌΡ Π±ΡΠ»ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.
ΠΠ»Π°ΡΡ Object ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ clone(). Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅Π³ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅:
protected native Object clone()