ΠΊΠ°ΠΊ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ java ΠΊΠΎΠ΄
Java Bytecode Fundamentals
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Java ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² Π·Π½Π°Π½ΠΈΠΈ ΠΎ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π΅, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅ΠΌΡΡ Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ΅ΠΌ, ΠΊΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Java ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ²ΠΎΠΈΡ
ΡΠ΅Π»ΡΡ
. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΈΠΏΠ° ASM, cglib, Javassist ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ² Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ.
Π ΡΡΠ°ΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Ρ ΡΠ°ΠΌΡΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ, ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ
ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΡΠ°ΡΠΊΠ°ΠΏΡΠ²Π°Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΡ (ΠΏΡΠΈΠΌ. ΠΏΠ΅Ρ.).
ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½ΡΠΌ Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ POJO Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΠ»Π΅ΠΌ ΠΈ Π³Π΅ΡΡΠ΅ΡΠΎΠΌ ΠΈ ΡΠ΅ΡΡΠ΅ΡΠΎΠΌ Π΄Π»Ρ Π½Π΅Π³ΠΎ.
ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΠ΅ ΠΊΠ»Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ javac Foo.java, Ρ Π²Π°Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠ°ΠΉΠ» Foo.class, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄. ΠΠΎΡ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π² HEX-ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅:
ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΠ°ΡΠ° ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΡ ΡΠΈΡΠ΅Π» (Π±Π°ΠΉΡ) ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΠΏΠΊΠΎΠ΄Ρ (ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠ°). ΠΡΠ»ΠΎ Π±Ρ ΠΆΠ΅ΡΡΠΎΠΊΠΎ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΠΎ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΡΠ½ΠΎΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ.
ΠΠ»Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ΄Π΅Ρ Π»Π΅Π³ΠΊΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠΌ. ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄-Π²Π΅ΡΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (ΠΊΠ°ΠΊ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡ JVM).
ΠΠ°Π»Π΅Π΅, ΠΈΠ·ΡΡΠ°Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ (Ρ Π½Π°Ρ ΡΡΠΎ aload_0 ΠΈ aload_1), ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡΡ ΡΠΈΠΏΠ° aload_0 ΠΈ istore_2. ΠΡΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ , Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠΈΡΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ. ΠΡΠ΅ΡΠΈΠΊΡ Β«aΒ» ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠΏΠΊΠΎΠ΄ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ. Β«iΒ», ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ integer.
Π’Π΅ΠΏΠ΅ΡΡ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΡΠΎ Π·Π° ΡΡΡΠ°Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, #2:
const #2 = Field #3.#18; // Foo.bar:Ljava/lang/String;
const #3 = class #19; // Foo
const #18 = NameAndType #5:#6;// bar:Ljava/lang/String;
ΠΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ (0: aload_0). ΠΡΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π²Π½ΡΡΡΠΈ ΡΡΠ΅ΠΉΠΌΠ° β Π΄Π°Π»ΡΡΠ΅ ΠΎΠ±ΡΡΡΠ½Ρ, ΡΡΠΎ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΠΌΠΎΠ΄Π΅Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. JVM ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠ΅ΠΊΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΡΡΠ΅Π΄ ΠΈΠΌΠ΅Π΅Ρ JVM-ΡΡΠ΅ΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΡΠ΅ΠΉΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π΄Π΅Π±Π°Π³Π³Π΅ΡΠ΅, ΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΡ:
ΠΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠ΅ΠΉΠΌ. Π€ΡΠ΅ΠΉΠΌ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°, ΠΌΠ°ΡΡΠΈΠ²Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΏΡΠ» ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΠΊΠ»Π°ΡΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°.
Π Π°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π°. Π‘ΡΠ΅ΠΊ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ² β LIFO-ΡΡΠ΅ΠΊ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΡΡΠ΅ΠΊΠ΅; ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠΊΠΎΠ΄Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΡΠ΅ΠΊ, Π΄ΡΡΠ³ΠΈΠ΅ Π±Π΅ΡΡΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π² ΡΡΠ΅ΠΊ. Π‘ΡΠ΅ΠΊ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ (return values).
ΠΠ°ΠΉΡΠΊΠΎΠ΄ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΡΡ ΠΎΠΏΠΊΠΎΠ΄ΠΎΠ². ΠΠ΅ΡΠ²ΡΠΉ ΠΎΠΏΠΊΠΎΠ΄, aload_0, ΠΏΡΠΎΡΠ°Π»ΠΊΠΈΠ²Π°Π΅Ρ Π² ΡΡΠ΅ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ 0 ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . Π‘ΡΡΠ»ΠΊΠ° this Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΠΈ instance-ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π²ΡΠ΅Π³Π΄Π° ΠΈΠΌΠ΅Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ 0. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠΊΠΎΠ΄, getfield, Π΄ΠΎΡΡΠ°Π΅Ρ ΠΏΠΎΠ»Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, areturn, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π°.
Π’Π°ΠΊ, Π±Π°ΠΉΡΠΊΠΎΠ΄ Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄Π° getBar β 2A B4 00 02 B0. 2A ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ aload_0, B0 β ΠΊ areturn. ΠΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΡΡΠ°Π½Π½ΡΠΌ, ΡΡΠΎ Π±Π°ΠΉΡΠΊΠΎΠ΄ Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π±Π°ΠΉΡ 5 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ getfield (B4) Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² Π΄Π²ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ
(00 02), Π·Π°Π½ΠΈΠΌΠ°ΡΡΠΈΡ
ΠΏΠΎΠ·ΠΈΡΠΈΠΈ 2 ΠΈ 3 Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, ΠΎΡΡΡΠ΄Π° ΠΈ 5 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. ΠΠ½ΡΡΡΡΠΊΡΠΈΡ areturn ΡΠ΄Π²ΠΈΠ³Π°Π΅ΡΡΡ Π½Π° 4 ΠΏΠΎΠ·ΠΈΡΠΈΡ.
Π’Π°Π±Π»ΠΈΡΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΠ»Ρ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΅ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ:
ΠΠ΄Π΅ΡΡ Π΄Π²Π΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ β ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ int b. ΠΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄:
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this LExample;
0 6 1 a I
2 4 2 b I
ΠΠ΅ΡΠΎΠ΄ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ 1 Ρ ΠΏΠΎΠΌΠΎΡΡΡ iconst_1 ΠΈ Π»ΠΎΠΆΠΈΡ Π΅Ρ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ 2 Ρ ΠΏΠΎΠΌΠΎΡΡΡ istore_2. Π’Π΅ΠΏΠ΅ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΠ»ΠΎΡ 2 Π·Π°Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ b, ΠΊΠ°ΠΊ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ. ΠΠ°Π»Π΅Π΅, iload_1 Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΡΠ΅ΠΊ, iload_2 Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ b. iadd Π²ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅Ρ 2 ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° ΠΈΠ· ΡΡΠ΅ΠΊΠ°, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΈΡ
ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ try-catch-finally.
ΠΠ°ΠΉΡ-ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄Π° foo():
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ΄ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° try-catch-finally: finallyMethod() Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠΈ ΡΠ°Π·Π°(!). ΠΠ»ΠΎΠΊ try ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π»ΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ try Π½Π΅ Π±ΡΠ»ΠΎ ΠΈ ΠΎΠ½ Π±ΡΠ» ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ½ Ρ finally:
0: aload_0
1: invokespecial #2; //Method tryMethod:()V
4: aload_0
5: invokespecial #3; //Method finallyMethod:()V
ΠΡΠ»ΠΈ Π±Π»ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, ΡΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ goto ΠΏΠ΅ΡΠ΅ΠΊΠΈΠ΄ΡΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° 30-Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Ρ ΠΎΠΏΠΊΠΎΠ΄ΠΎΠΌ return.
ΠΡΠ»ΠΈ tryMethod Π±ΡΠΎΡΠΈΡ Exception, Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠ°Π½ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ (Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ) ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΠ· ΡΠ°Π±Π»ΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΡ Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠΎΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π²Π½Π° 11:
0 4 11 Class java/lang/Exception
ΠΡΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠΈΠ΄ΡΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° catchMethod() ΠΈ finallyMethod():
11: astore_1
12: aload_0
13: invokespecial #5; //ΠΌΠ΅ΡΠΎΠ΄ catchMethod:()V
16: aload_0
17: invokespecial #3; //ΠΌΠ΅ΡΠΎΠ΄ finallyMethod:()V
ΠΡΠ»ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π±ΡΠΎΡΠ΅Π½ΠΎ Π΄ΡΡΠ³ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½Π° 23:
0 4 23 any
11 16 23 any
23 24 23 any
ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ 23:
23: astore_2
24: aload_0
25: invokespecial #3; //Method finallyMethod:()V
28: aload_2
29: athrow
30: return
Π’Π°ΠΊ ΡΡΠΎ finallyMethod() Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Ρ aload_2 ΠΈ athrow, Π±ΡΠΎΡΠ°ΡΡΠΈΠΌ Π½Π΅ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
ΠΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· ΠΎΠ±Π»Π°ΡΡΠΈ Π±Π°ΠΉΡΠΊΠΎΠ΄Π° JVM. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΡΠ΅ΡΠΏΠ½ΡΡΠΎ ΠΈΠ· ΡΡΠ°ΡΡΠΈ developerWorks Peter Haggar β Java bytecode: Understanding bytecode makes you a better programmer. Π‘ΡΠ°ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°ΡΠ΅Π»Π°, Π½ΠΎ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π°ΠΊΡΡΠ°Π»ΡΠ½Π°. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ BCEL ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄ΠΎΡΡΠΎΠΉΠ½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» Π±Ρ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠΌΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π½ΠΎ Π΅Π΅ Π½Π΅Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠ°ΡΡ, ΠΊΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ ΠΏΡΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ.
Π ΡΠ΅Π»ΠΎΠΌ, Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΆΠ½ΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠΌ Π² ΡΠ³Π»ΡΠ±Π»Π΅Π½ΠΈΠΈ ΡΠ²ΠΎΠΈΡ Π·Π½Π°Π½ΠΈΠΉ Π² Java-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΠΏΡΠΈΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°ΠΌ JVM-ΡΠ·ΡΠΊΠΎΠ² ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌ.
Java Core Π΄Π»Ρ ΡΠ°ΠΌΡΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ . Π§Π°ΡΡΡ 1. ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΈ ΠΏΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
ΠΡΡΡΠΏΠ»Π΅Π½ΠΈΠ΅. ΠΡΠ°ΡΠΊΠ°Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠ°
ΠΠ°ΠΊ-ΡΠΎ Π΄Π°Π²Π½ΠΎ ΠΌΡ Ρ ΠΌΠΎΠΈΠΌ ΡΠΎΠ²Π°ΡΠΈΡΠ΅ΠΌ ΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΎΠΉ ΠΠ³ΠΎΡΠΎΠΌ Π³ΠΎΡΠΎΠ²ΠΈΠ»ΠΈ ΠΎΠ±ΡΡΠ°ΡΡΠΈΠΉ ΠΊΡΡΡ ΠΏΠΎ Java Core. ΠΠΎ ΠΊΠ°ΠΊ-ΡΠΎ Π½Π΅ ΡΡΠΎΡΠ»ΠΎΡΡ ΠΈ ΡΡΠΎ Π΄Π΅Π»ΠΎ Π½Π΅ Π±ΡΠ»ΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅Π½ΠΎ Π΄ΠΎ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ°. Π Π²ΠΎΡ, ΡΠΏΡΡΡΡ Π²ΡΠ΅ΠΌΡ, Ρ ΡΠ΅ΡΠΈΠ», ΡΡΠΎ Π½Π΅ ΡΡΠΎΠΈΡ ΠΏΡΠΎΠΏΠ°Π΄Π°ΡΡ Π΄ΠΎΠ±ΡΡ ΠΈ ΠΏΠΎ-ΡΡΠΎΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Ρ ΡΠ΅ΡΠΈΡ ΡΡΠ°ΡΠ΅ΠΉ ΠΏΡΠΎ Java Core Π΄Π»Ρ ΡΠ°ΠΌΡΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ .
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ·ΡΠΊΠ° Π±ΡΠ»ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ Π΅ΡΠ΅ Π² 1991 Π³ΠΎΠ΄Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Sun Microsystems, Inc. ΠΠ½Π°ΡΠ°Π»Π΅ ΡΠ·ΡΠΊ Π±ΡΠ» Π½Π°Π·Π²Π°Π½ Oak (ΠΡΠ±), Π½ΠΎ Π² 1995 ΠΎΠ½ Π±ΡΠ» ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² Java. ΠΡΠ±Π»ΠΈΡΠ½ΠΎ Π·Π°ΡΠ²ΠΈΠ»ΠΈ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ·ΡΠΊΠ° Π² 1995 Π³ΠΎΠ΄Ρ. ΠΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΡΠ»Π° ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² Π½Π΅Π·Π°Π²ΠΈΡΡΡΠ΅ΠΌ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΡΠ·ΡΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄Π»Ρ Π±ΡΡΠΎΠ²ΠΎΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΡΠ΅Ρ Π½ΠΈΠΊΠΈ. ΠΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΡΠ°ΠΊΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π½Π° ΡΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ·ΡΠΊΠΎΠ² Π‘/Π‘++ ΠΈ ΠΏΡΠΎΡΠΈΡ Π±ΡΠ»ΠΎ Π·Π°ΡΡΡΠ΄Π½Π΅Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΊΠ°ΡΠ°ΡΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ JDK ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ Π±ΡΠ°ΡΠ·Π΅Ρ, ΠΈ Π² ΡΡΡΠΎΠΊΠ΅ ΠΏΠΎΠΈΡΠΊΠ° Google Π²Π²ΠΎΠ΄ΠΈΠΌ βdownload JDKβ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ ΡΡΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅.
Π‘ΠΊΡΠΎΠ»ΠΈΠΌ Π½ΠΈΠΆΠ΅ ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ Ρ Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ JDK. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½Π°ΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ.
ΠΡΠΎΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΠΠ‘ Windows ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΠΏΠΎΠ². ΠΠ΅ ΡΡΠΎΠΈΡ ΠΏΡΠ³Π°ΡΡΡΡ, Π²ΡΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ ΠΈ Π΄Π΅Π»Π°Π΅ΡΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΠΈΠΊΠΎΠ². ΠΠΎΡ Π·Π΄Π΅ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. Π‘Π°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Windows ΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ JAVA_HOME. Π ΡΡΠΎΠΉ ΠΆΠ΅ ΡΡΠ°ΡΡΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΎ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ (Π΅ΡΡΡ Π΄Π°ΠΆΠ΅ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ).
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° IDE
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΎΠ½Π° ΠΆΠ΅ IDE (Integrated development environment). Π§ΡΠΎ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ? ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΠ½Π° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π²ΠΎΠ΄ΠΈΡΡ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡ. ΠΠΎ ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ, ΡΡΠΎΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΡΠΌΠ΅Π΅Ρ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΡΠ·ΡΠΊΠ° Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π½Π° ΡΠ°Π½Π½Π΅ΠΌ ΡΡΠ°ΠΏΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°ΡΡ Π²Π°ΠΌ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ Π΄ΠΎΠΏΡΡΡΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠ΄Π΅.
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΏΡΠ°Π²ΠΈΡΡ ΠΈ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ Π²Π°Ρ ΠΊΠΎΠ΄ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ ΡΠ°ΠΊ, ΡΡΠΎ Π±ΡΠ»ΠΈ ΠΎΠΏΠΈΡΠ°Π½Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ IDE. Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ IDE ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ, ΠΎΡΠ»Π°Π΄ΠΊΠ΅, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΈ ΡΠ΅ΡΠΈΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΈ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ ΡΠ°ΠΌΡΠΌΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌΠΈ ΠΈΠ· Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ: IntelliJ IDEA, NetBeans, Eclipse. ΠΠ»Ρ ΡΠ΅Π±Ρ Ρ Π²ΡΠ±ΠΈΡΠ°Ρ IntelliJ IDEA. ΠΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΌΠΎΠΉ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΠΈ Ρ ΠΎΡΡ ΠΎΠ½Π° ΠΈ ΠΏΠ»Π°ΡΠ½Π°Ρ, Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Community. ΠΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ² Java. ΠΠΎΠΎΠ±ΡΠ΅ΠΌ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² IntelliJ IDEA.
ΠΡΠ°ΠΊ, ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ Π±ΡΠ°ΡΠ·Π΅Ρ, Π² ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π²Π²ΠΎΠ΄ΠΈΠΌ «Download IntelliJ IDEA Community» ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ ΡΡΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅. ΠΡΠ±ΠΈΡΠ°Π΅ΠΌ Π²Π΅ΡΡΠΈΡ ΠΠ‘ ΠΈ ΠΊΠ°ΡΠ°Π΅ΠΌ Π²Π΅ΡΡΠΈΡ Community.
Π ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ IntelliJ IDEA Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ. ΠΠ° ΠΊΡΠ°ΠΉΠ½ΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΡΡΡΠ±Π΅ Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΠΈΠ΄Π΅ΠΎ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π³ΠΎΡΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°ΡΡ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΠΎΠΊΠΎΡΠΊΠ΅ Π·Π°ΠΏΡΡΡΠΈΠ²ΡΠΈΠΉΡΡ IDE Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ New Project.
Π Π½ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠΎΡΠΊΠ΅ Π² Π»Π΅Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Java.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Π Π²Π΅ΡΡ Π½Π΅ΠΌ ΠΎΠΊΠΎΡΠΊΠ΅, ΡΠΏΡΠ°Π²Π°, Π²ΠΎΠ·Π»Π΅ Π½Π°Π΄ΠΏΠΈΡΠΈ «Project SDK:» Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²Π΅ΡΡΠΈΡ Java, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Π²ΠΌΠ΅ΡΡΠ΅ Ρ JDK. ΠΡΠ»ΠΈ ΡΠ°ΠΌ ΠΏΡΡΡΠΎ, ΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΡΡ ΠΊ Π²Π°ΡΠ΅ΠΌΡ JDK Π²ΡΡΡΠ½ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅ Π½Π°ΠΆΠΌΠΈΡΠ΅ «Add JDK. « ΠΈ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΏΡΡΡ ΠΊ Π²Π°ΡΠ΅ΠΌΡ JDK, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΆΠ°ΡΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Next. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΎΠΊΠΎΡΠΊΠ΅, Π²Π²Π΅ΡΡ Ρ, ΠΏΠΎΡΡΠ°Π²ΡΡΠ΅ Π³Π°Π»ΠΎΡΠΊΡ βCreate project from templateβ ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ βCommand Line Appβ. Π ΡΠ½ΠΎΠ²Π° Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Next.
ΠΠ°Π»ΡΡΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π£ ΠΌΠ΅Π½Ρ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Hello World, ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΎΠ±Ρ ΠΈΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ»ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ Π»Π°ΡΠΈΠ½ΠΈΡΠ΅ΠΉ, ΠΈ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈΠΌΠ΅Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΏΡΠΈΠ½ΡΡΠΎ ΠΏΠΈΡΠ°ΡΡ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΠΈ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΡΠΈΠ»Ρ, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΈΠΌ ΡΠΎΠ½ΠΎΠΌ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ.
ΠΠΎΡΠ»Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΏΡΡΡ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ IDE, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° Π²Π°ΡΠ° ΠΏΠ΅ΡΠ²Π°Ρ, ΠΏΠΎΡΡΠΈ Π³ΠΎΡΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°.
ΠΡΠΎ ΠΎΠΊΠ½ΠΎ, ΡΠΎ ΡΡΠΎ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ 80-90%, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ 100% Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ°Π±ΠΎΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡ Π²Π°ΡΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΠΎΡΠΊΡ ΠΊΠΎΠ΄Π° System.out.print(«Hello world!»); ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅.
Π Π°Π·Π±ΠΈΡΠ°Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π ΡΠ²ΠΎΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ ΡΠ»ΠΎΠ², Π½ΠΎ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΎΡΠΏΡΠΈΠ½ΡΡΡ ΠΈΡ ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΠΎΡΡΡ, ΠΏΠΎΠ·ΠΆΠ΅, Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°ΡΡΡΡ , Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ , ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ΠΈ Π½ΡΠΆΠ½Ρ. ΠΠ° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ ΡΡΠΎ ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π±ΡΠ΄ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ.
ΠΡΠΎΠΉΠ΄Π΅ΠΌΡΡ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ:
Π€ΠΈΠ³ΡΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ <> Ρ ΠΌΠ΅ΡΠΎΠ΄Π° main ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Ρ Π½Π°ΡΠ°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ ΡΠ΅Π»Π° ΠΌΠ΅ΡΠΎΠ΄Π°, Π²Π΅ΡΡ ΠΊΠΎΠ΄ ΠΌΠ΅ΡΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ Π΅ΡΡΡ ΠΈ Ρ ΠΊΠ»Π°ΡΡΠ° Main.
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ // write your code here ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡ ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ. ΠΠΎ-ΡΡΠΎΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠ°Π²Π»ΡΡΡ Π² ΠΊΠΎΠ΄Π΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ Π΄Π»Ρ ΡΠ΅Π±Ρ ΠΈ Π΄ΡΡΠ³ΠΈΡ , ΠΊΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΈΡΠ°ΡΡ Π²Π°Ρ ΠΊΠΎΠ΄, ΠΈΠ»ΠΈ ΠΆΠ΅ Π΄Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΈΠ΄ΠΎΠ² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΈΠ· Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΡΠΉ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠΉ.
ΠΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ /* ΠΈ */
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΡΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠΎΠΈΡ ΡΠΎΡΠΊΠ° Ρ Π·Π°ΠΏΡΡΠΎΠΉ, Π² ΡΠ·ΡΠΊΠ΅ Java ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ ΡΠΎΡΠΊΠΎΠΉ Ρ Π·Π°ΠΏΡΡΠΎΠΉ.
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΠΊΠΎΠ½ΡΡ. ΠΠ²ΡΠΎΡΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΠ³ΠΎΡ ΠΈ Π²ΡΠ΅ ΡΠΌΠ΅Π½ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π°ΡΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΎΡΠΌΡ ΡΠ»ΠΎΠ² ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΠΈΡΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΈΠΏΠ°Ρ Π΄Π°Π½Π½ΡΡ Π² Java.
Java Code Style: ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠΎΡΠΌΠ»ΡΡΡ ΠΊΠΎΠ΄ Java
Π‘ΡΠ°ΡΡΡ ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΠΊΠΎΠ±ΠΊΠ°Ρ , ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ , ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»Π°Ρ Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ ΡΠΎΠ½Π°, ΠΏΡΠΈΠ½ΡΡΡΡ Π² ΡΠ·ΡΠΊΠ΅ JavΠ°.
Π ΡΠ·ΡΠΊΠ΅ Java, ΠΊΠ°ΠΊ ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π΅ΡΡΡ Π½Π΅ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠ΅, Π½ΠΎ ΠΏΡΠΈΠ½ΡΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ Π²Π°ΠΆΠ½ΠΎ.
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ Π΅Π΄ΠΈΠ½ΡΠΉ ΡΡΠΈΠ»Ρ ΠΊΠΎΠ΄Π°
Java Code Style β ΡΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΈ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΎ ΡΡΠΈΠ»Π΅ ΠΊΠΎΠ΄Π°, ΡΠΎΠ±ΡΠ°Π½Π½ΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π Π΅Π³Π»Π°ΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π΅ΡΠ΅ΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ. ΠΠΎΡΠ΅ΠΌΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΡΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΡ?
ΠΡΠΈΡΠΈΠ½Ρ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ ΡΠ°ΠΊΠΈΠΌ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡΠΌ, Π»ΠΎΠ³ΠΈΡΠ½Ρ ΠΈ ΠΏΡΠΎΡΡΡ:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΡΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΡΠΌ, ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΡΠΈΠ»ΡΠΌΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Ρ Π»ΡΠ΄Π΅ΠΉ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π½Π°Π΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ.
ΠΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ Skillbox. ΠΠΈΡΠ΅Ρ ΠΏΡΠΎ Java, ΡΡΠΈΡ Go. ΠΠΎΠΌΠ½ΠΈΡ ΡΠ°ΡΡΠ²Π΅Ρ PHP ΠΈ ΠΊΠ°ΠΊ Β«Π³ΡΠ°Π±ΠΈΡΡ ΠΊΠΎΡΠΎΠ²Π°Π½ΡΒ».
Π€ΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅
Π‘ΡΠΈΠ»Ρ Π½Π΅ ΠΈΠ³ΡΠ°Π΅Ρ ΡΠΎΠ»ΠΈ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, Π½ΠΎ Π²Π°ΠΆΠ΅Π½ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ. ΠΠ°ΡΠ΅ Π·ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΡΠΎΠ΅Π½ΠΎ ΡΠ°ΠΊ, ΡΡΠΎ ΡΠΏΠ΅ΡΠ²Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ°Π·Ρ, Π° ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠ΅ΠΌ ΠΌΡ Π²Π΄Π°ΡΠΌΡΡ Π² Π΄Π΅ΡΠ°Π»ΠΈ. Π Π΅ΡΠ»ΠΈ Π±Π»ΠΎΠΊΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π½ΠΈΠΌ Π·Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ, Π΄Π°ΠΆΠ΅ Π½Π΅ Π²Π½ΠΈΠΊΠ°Ρ Π² ΡΠ°ΠΌ ΠΊΠΎΠ΄.
Π‘ΠΎΠ²Π΅ΡΡ ΠΏΠΎ ΡΠΈΡΡΠΎΠΌΡ ΠΊΠΎΠ΄Ρ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ Π² Java/Android
Π’Π΅ΠΌΠ΅ ΡΠΈΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠΎΠ»ΡΠΊΠΎ habrahabr ΠΏΠΎΡΠ²ΡΡΠ΅Π½ΠΎ ΡΡΡΡΡΠΈ ΡΡΠ°ΡΠ΅ΠΉ. ΠΠΈΠΊΠΎΠ³Π΄Π° Π±Ρ Π½Π΅ ΠΏΠΎΠ΄ΡΠΌΠ°Π», ΡΡΠΎ Π·Π°Ρ ΠΎΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΡ. ΠΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ ΠΊΡΡΡΠΎΠ² Π΄Π»Ρ ΠΆΠ΅Π»Π°ΡΡΠΈΡ ΡΠ²ΡΠ·Π°ΡΡ ΠΊΠ°ΡΡΠ΅ΡΡ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΠ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΠΎΠ΄ Android, ΠΌΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΠΎΡΡ.
ΠΠ° ΠΎΡΠ½ΠΎΠ²Ρ ΡΡΠ°ΡΡΠΈ Π²Π·ΡΡΡ ΡΠΎΠ²Π΅ΡΡ ΠΈΠ· ΠΊΠ»Π°ΡΡΠΈΠΊΠΈ βΠ ΠΎΠ±Π΅ΡΡ Π. ΠΠ°ΡΡΠΈΠ½: Π§ΠΈΡΡΡΠΉ ΠΊΠΎΠ΄β. ΠΡΠΎΠ±ΡΠ°Π» ΠΈΠ· Π½ΠΈΡ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°Π»ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΡΡΠ΄Π΅Π½ΡΠΎΠ². ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΡΠΎΠ²Π΅ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΌΠΎΠ΅Π³ΠΎ ΠΎΠΏΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ Android ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΡΡΠΎΠΌΡ Π½Π΅ ΠΊΠΎ Π²ΡΠ΅ΠΌ Android-ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π½ΠΈΠΆΠ΅ ΡΠΎΠ²Π΅ΡΡ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ, Ρ ΡΠΆΠ΅ Π½Π΅ Π³ΠΎΠ²ΠΎΡΡ ΠΏΡΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ.
Π‘ΠΎΠ²Π΅ΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ» Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊ ΠΠ ΠΠ£ΠΠΠ Π΄Π΅Π»Π°ΡΡ. ΠΠ°ΠΊ Π½ΠΈ ΡΡΡΠ°Π½Π½ΠΎ, Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΡΡΠ΄Π΅Π½ΡΠΎΠ² Π±ΡΠ»ΠΈ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π° Π±ΡΠ»ΠΈ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π½Ρ, Π»ΡΠ±ΡΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΡΠ»ΡΡΠ°ΠΉΠ½Ρ.
ΠΠ±ΡΠΈΠ΅ ΡΠΎΠ²Π΅ΡΡ
1. ΠΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠ°Π΅ΠΌΡΠΌ, ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΠΈ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΌ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΠ°ΡΡΡ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π°Π½Π°Π»ΠΈΠ· Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π° Π½Π΅ Π½Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ. ΠΠ°ΠΆΠ½ΠΎ ΡΡΠΎΠ±Ρ ΠΠ°Ρ ΠΊΠΎΠ΄ Π±ΡΠ» Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠ°Π΅ΠΌΡΠΌ, ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΠΈ Ρ ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΡΠ΅ΠΌΡΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌ ΠΈ ΠΠ°ΠΌ ΠΏΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ²ΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°ΡΡΠ°ΡΠΈΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°. ΠΠΎΠ½ΡΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Ρ ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΡΠ΅ΠΌΡΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ Π²Π½Π΅ΡΠ΅Π½ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅ Π°Π²ΡΠΎΡΠΎΠΌ ΠΊΠΎΠ΄Π°.
2. ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Java Code Conventions Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ, ΠΏΡΠΈΠ½ΡΡΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ Ρ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° ΠΊΠ½ΠΈΠ³ΠΈ. ΠΡΠΌΠ°Ρ, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π·Π°Ρ ΠΎΡΡΡ ΡΠΈΡΠ°ΡΡ ΠΊΠ½ΠΈΠ³Ρ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π°Π±Π·Π°Ρ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΡΡΠΈΡΡΠΎΠΌ, ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΈ ΡΠ²Π΅ΡΠΎΠΌ ΡΠ΅ΠΊΡΡΠ°. Π’Π°ΠΊ ΠΈ Ρ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΡΠ΄Π° Π»Π΅Π³ΡΠ΅ ΡΠΈΡΠ°ΡΡ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΡΠΉ Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ ΡΡΠΈΠ»Π΅ ΠΊΠΎΠ΄.
ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅
1. ΠΠΌΠ΅Π½Π° ΠΊΠ»Π°ΡΡΠΎΠ², ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π·Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌΡΠΉ Π² Π½ΠΈΡ ΡΠΌΡΡΠ».
ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΉ ΡΠΎΠ²Π΅Ρ, Π½ΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π΅Π³ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ. Π’ΡΡ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ: Π΅ΡΠ»ΠΈ Π²ΡΠ΅ Π³Π»Π°Π²Ρ Π½Π°Π·Π²Π°Π½Ρ ΠΏΡΠΎΡΡΠΎ «ΠΠ»Π°Π²Π°ΠΌΠΈ», ΡΠΎ ΠΏΠΎΠ½ΡΡΡ Π² ΡΠ΅ΠΌ ΡΡΡΡ Π½Π΅Π»ΡΠ·Ρ. ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΡΠ½ΠΊΡΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΎΠ± ΠΈΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ Π±Π΅Π· ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΡ Π² Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² MyActivity, CustomView, MyAdapter Π³ΠΎΠ²ΠΎΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΡΡΡ Android SDK ΠΈ Π²ΡΠ΅. SecondActivity Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΡΡΡ Android SDK ΠΈ ΠΎ Π½Π°Π»ΠΈΡΠΈΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Activity, Π½ΠΎ Π½Π΅ ΡΠ°ΠΊΡ =)
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½Ρ ΠΈ Π½Π°ΡΡΡΠ°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ:
ΠΊΠ°ΠΊ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°:
2. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΡΠ°ΠΉΠ»Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ.
ΠΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠ»Π°ΡΡ
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ βproducts_Activity.javaβ.
ΠΡΠΎ Π½Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈ java-ΡΠ°ΠΉΠ»Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ.
3. Π Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡΡ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π±ΡΠΊΠ²Ρ Π»Π°ΡΠΈΠ½ΡΠΊΠΎΠ³ΠΎ Π°Π»ΡΠ°Π²ΠΈΡΠ°, Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠΈΡΡ, ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡΠΈΡΠΎΠ². ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² (ΠΠΠ‘Π’, ISO), ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ² Π² Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ.
4. ΠΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠΎΡΠ½ΡΠ΅ βLβ ΠΈ βOβ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Ρ.ΠΊ. ΠΈΡ ΡΡΡΠ΄Π½ΠΎ ΠΎΡΠ»ΠΈΡΠΈΡΡ ΠΎΡ β1β ΠΈ β0β.
ΠΠ°Π΄ΡΠΌΠ°Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΎ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Ρ Π²ΡΡΡΠ΅ΡΠ°Π» Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ·ΡΡΡΠΊΠΎΠ²ΠΎΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΎΡΠΈΠ±ΠΊΠ°, ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π° ΡΠ΅ΠΊΡΠ½Π΄Ρ Π΅Π΅ Π½Π°ΠΉΡΠΈ=)?
Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΡΡΡΠ΄Π΅Π½ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ΅Π½Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°ΡΡ.
5. ΠΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΈΠΏ Π² ΡΡΡΡΠΈΠΊΡΠ΅ ΠΈΠΌΠ΅Π½.
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Android SDK: Activity, Fragment, View, Uri ΠΈ Ρ.Π΄. ΠΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ NewsSynsService ΡΡΠ°Π·Ρ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ «ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ» ΠΈ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π΅Π½ Π·Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΡΠΈΠΊΡΠ° view Π² nameView, photoView ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠ»ΠΈΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊ Π²Π΅ΡΡΡΠΊΠΈ, ΠΎΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ . ΠΠΌΠ΅Π½Π° view ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡ Ρ ΡΡΡΠ΅ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ. ΠΠΎ ΠΈΠΌΠ΅Π½Π° ΠΊΠ½ΠΎΠΏΠΎΠΊ Π»ΡΡΡΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡ Ρ Π³Π»Π°Π³ΠΎΠ»Π°: buyButton
6. ΠΠΌΠ΅Π½Π° ΠΌΠΎΠ³ΡΡ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ΅ΡΠΌΠΈΠ½Ρ ΠΈΠ· ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ, Π½Π°Π·Π²Π°Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ², ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Ρ.Π΄.
7. ΠΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡΡ ΠΏΡΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ.
ΠΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Android SDK Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ Π·Π΄Π΅ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π² ΡΠΈΠ»Ρ Π΄Π°Π²Π½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΡΡ Π²Π΅ΡΡΠΈΠΉ ΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ Π΄ΠΎ Π½Π°ΡΠΈΡ Π΄Π½Π΅ΠΉ.
s_ Π½ΠΈ ΠΊ ΡΠ΅ΠΌΡ Π² Π½Π°ΡΠ°Π»Π΅ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ. Π ΡΠΎΠΌΡ ΠΆΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡΡΡ ΠΏΡΠΎΠΏΠΈΡΠ½ΡΠΌΠΈ Π±ΡΠΊΠ²Π°ΠΌΠΈ:
8. Π Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅.
9. ΠΠ°Π·Π²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΠΏΡΠΎΠΏΠΈΡΠ½ΠΎΠΉ Π±ΡΠΊΠ²Ρ.
Π‘Π»ΠΎΠ²Π° ΠΠ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠ΄Π΅Π»ΡΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΡ. ΠΡΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π½ΠΎΡΠ°ΡΠΈΠΈ CamelCase: GoodsFragment, BaseFragment
10. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠ΄Π½ΠΎ ΡΠ»ΠΎΠ²ΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ.
Π€ΡΠ½ΠΊΡΠΈΠΈ
1. Π€ΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ βΠΎΠΏΠ΅ΡΠ°ΡΠΈΡβ. ΠΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΅Π΅ Ρ ΠΎΡΠΎΡΠΎ. Π Π½ΠΈΡΠ΅Π³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΎΠ½Π° Π΄Π΅Π»Π°ΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π°.
ΠΠΎΠ΄ βΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉβ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π½Π΅ ΠΎΠ΄Π½Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΈΠ»ΠΈ Π²ΡΠ·ΠΎΠ² Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ. Π§ΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΈΠ·Π²Π»Π΅ΡΡ ΠΈΠ· Π½Π΅Π΅ Π΄ΡΡΠ³ΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠ»ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ Π΄Π°Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΠΊΡΠΎΠΌΠ΅ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ΄Π°, ΡΠΎ Π·Π½Π°ΡΠΈΡ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ Π΄Π°Π»ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π°
Π ΠΏΡΠΈΠΌΠ΅ΡΡ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ setProducts ΠΊΠ»Π°ΡΡΠ° ProductsAdapter :
Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² newProducts Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ ΠΈ Π΄Π°ΠΆΠ΅ Π² Π΄ΡΡΠ³ΠΎΠΌ Π² ΠΊΠ»Π°ΡΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² presenter-Π΅). Π ProductsAdapter Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΠΉΡΠΈ ΡΠΆΠ΅ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
ΠΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ΄ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ newProducts ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΆΠ΅ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ².
ΠΠΎΠΆΠ½ΠΎ Π΅ΡΠ΅ ΡΡΡΠΎΡΠΊΠΈ java products.clear(); products.addAll(newProducts);
Π²ΡΠ½Π΅ΡΡΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, Π½ΠΎ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π° Ρ Π² ΡΡΠΎΠΌ Π½Π΅ Π²ΠΈΠΆΡ. ΠΡΡΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ notifyDataSetChanged Π½Π° DiffUtil, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΡΠ΅ΠΉΠΊΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅
2. Π Π°Π·ΠΌΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ 8-10 ΡΡΡΠΎΠΊ.
Π€ΡΠ½ΠΊΡΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π² 3 ΡΠΊΡΠ°Π½Π° ΡΡΠΎ Π½Π΅ ΡΡΠ½ΠΊΡΠΈΡ, ΡΡΠΎ *****. Π£ ΠΌΠ΅Π½Ρ ΡΠΎΠΆΠ΅ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ 8-10 ΡΡΡΠΎΠΊΠ°ΠΌΠΈ ΠΊΠΎΠ΄Π°, Π½ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ΅ΠΌΠΈΡΡΡ ΠΊ ΡΡΠΎΠΌΡ. ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ Π½Π΅ Π±ΡΠ΄Ρ.
Π€ΡΠ½ΠΊΡΠΈΠΈ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΡΡΠ΄Π½ΠΎ ΡΠΈΡΠ°ΡΡ, ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ. Π Π°Π·Π±ΠΈΠ² Π±ΠΎΠ»ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π½Π° ΠΌΠ°Π»ΡΠ΅, Π»Π΅Π³ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ½ΡΡΡ ΡΠΌΡΡΠ» ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ΅Π»ΠΊΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ Π±ΡΠ΄ΡΡ ΡΠΊΡΡΡΡ. ΠΡΠ΄Π΅Π»ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
3. Π ΡΠ΅Π»Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ.
ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ errorMessage ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, ΡΠ΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ΄ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠ΄ java «Article » + article.getName() + » is incorrect» Π»ΡΡΡΠ΅ Π²ΡΠ½Π΅ΡΡΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
4. ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ
ΠΡΠΈΡΠΈΠ½ΠΎΠΉ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π° Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ²Π»ΡΡΡΡΡ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Π² ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠΈ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠ΄. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π°ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡ ΠΏΠΎΠ»Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΠΈΡΠΊ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π½Π° Π²Ρ ΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°ΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄:
Π ΠΎΠ±Π΅ΡΡ Π. ΠΠ°ΡΡΠΈΠ½ ΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°ΡΡΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ:
ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Ρ ΡΠ°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π½Π΅ Π²ΡΡΡΠ΅ΡΠ°Π». ΠΡΡΡΠ΅ Π΄Π°Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅:
5. ΠΠΌΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ Π³Π»Π°Π³ΠΎΠ»Π°. ΠΡΡΡΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ ΠΈΠΌΡ, ΡΠ΅ΠΌ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅.
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ start Π½Π΅ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ°ΡΡΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ. Π’ΠΎΠ»ΡΠΊΠΎ Π·Π°Π³Π»ΡΠ½ΡΠ² Π² ΡΠ΅Π»ΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Activity.
Π Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΆΠ΅ ΠΏΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ.
6. ΠΠΌΠ΅ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π°Π³Π° (boolean) Π»ΡΡΡΠ΅ ΡΠ°Π·Π±ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π½Π° Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ
Π§Π°ΡΡΠΎ ΡΡΠΎΡ ΡΠ»Π°Π³ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π°Π³Π°. Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Π΄Π²Π΅. Π Π°Π·Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π°Π³Π° Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ.
7. ΠΡΠ±Π»ΠΈΡΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ½ΠΎΡΠΈΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠΎΠ΄ Π²Π½ΡΡΡΠΈ setOnClickListener ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΠ»Π΅ΠΌ. ΠΡΠΎΡ ΠΊΠΎΠ΄ ΡΡΠΎΠΈΡ Π²ΡΠ½Π΅ΡΡΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄:
8. ΠΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΈ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΠΉΡΠ΅ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ βnullβ ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ ΠΏΡΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ.
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ NullPointerexception ΠΈ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π² ΠΌΠ΅ΡΡΠ°Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° null.
Kotlin ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΠΈΡΡΡΡ ΠΎΡ Π²ΡΠ΅Π΄Π½ΠΎΠΉ ΠΏΡΠΈΠ²ΡΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ null.)
Π€ΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
1. ΠΠΎΠ΄ Π² ΠΊΠ»Π°ΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΈΡΠ°ΡΡΡΡ ΡΠ²Π΅ΡΡ Ρ-Π²Π½ΠΈΠ· ΠΊΠ°ΠΊ Π³Π°Π·Π΅ΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ±ΡΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ²Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ. ΠΠ½Π°ΡΠ°Π»Π΅ ΠΈΠ΄ΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠ΅.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ ΡΠΎΠ²Π΅ΡΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΡΠ°ΠΉΠ»Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ ΡΠ²Π΅ΡΡ Ρ. ΠΡΠ»ΠΈ Π²Π½Π°ΡΠ°Π»Π΅ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎ Π»Π΅Π³ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ½ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°, ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ° ΠΈ Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ. ΠΠ°Π½Π½ΡΠΉ ΡΠΎΠ²Π΅Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠ΅ΠΊΡ ΡΡΡΠΎΠΈΡΡΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ .
2. Π‘Π²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ/ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ ΡΡΠ΄ΠΎΠΌ, ΡΡΠΎΠ±Ρ Π½Π΅ Π±ΡΠ»ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΏΠΎ ΡΠ°ΠΉΠ»Ρ Π²Π²Π΅ΡΡ -Π²Π½ΠΈΠ·. ΠΡΠ»ΠΈ ΠΎΠ΄Π½Π° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π΄ΡΡΠ³ΡΡ, ΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΠΏΠΎΠ΄ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ (Π΅ΡΠ»ΠΈ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ) ΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ ΠΏΡΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ.
ΠΠ°Π½Π½ΡΠΉ ΡΠΎΠ²Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ. ΠΡΠ±ΡΠ°Π² ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉ ΡΠΎΠ²Π΅Ρ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠΈΡ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π΅Π³ΠΎ Π½Π° Π²ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
3. ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½Π°Ρ Π³ΡΡΠΏΠΏΠ° ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΎΠ΄Π½Ρ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π½ΡΡ ΠΌΡΡΠ»Ρ. ΠΡΡΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΡΡΡΡ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° Π² ΠΊΠΎΠ΄Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΡΡΡΡ ΡΡΡΠΎΠΊ, ΡΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ ΠΏΡΡΡΡΠΌΠΈ ΡΡΡΠΎΡΠΊΠ°ΠΌΠΈ Π½Π΅ ΡΡΠΎΠΈΡ
Π‘Π²ΡΠ·Π°Π½Π½Π°Ρ Π³ΡΡΠΏΠΏΠ° ΡΡΡΠΎΠΊ ΡΡΠΎ ΠΊΠ°ΠΊ Π°Π±Π·Π°ΡΡ Π² ΡΡΠ°ΡΡΠ΅. ΠΠ»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ Π°Π±Π·Π°ΡΠ΅Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΡΠ°ΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΈΠ»ΠΈ ΠΏΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ°. Π’Π°ΠΊ ΠΈ Π² ΠΊΠΎΠ΄Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎ ΡΠΌΡΡΠ»Ρ Π³ΡΡΠΏΠΏΡ ΡΡΡΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΡΡΡΠ΅ ΡΡΡΠΎΠΊΠΈ.
4. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ°, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΡΠ΅ Π² Π½Π°ΡΠ°Π»Π΅ ΠΊΠ»Π°ΡΡΠ° Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅.
Π Π½Π°ΡΠ°Π»Π΅ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΈ ΠΏΠΎΡΠ»Π΅ Π½ΠΈΡ ΠΈΠ΄ΡΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅.
5. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠΎΠ±Π΅Π»Ρ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ ΠΊΠΎΠ΄Π°
ΠΠΈΡΡ ΠΏΡΠΎΡΠΈΡΠ°Π² ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π·Π°Π΄Π°ΡΠΈ Ρ ΠΏΠΎΠ½ΡΠ», Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π² ΠΊΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎΡΡ ΡΠΈΡΠ»ΠΎ β10β. ΠΡΡΡΠ΅ ΡΡΠΎ ΡΠΈΡΠ»ΠΎ Π²ΡΠ½Π΅ΡΡΠΈ Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΈ Π΄Π°ΡΡ ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ.
Π‘ΡΡΠΎΠΊΠΈ ΡΠΎΠΆΠ΅ ΡΡΠΎΠΈΡ Π²ΡΠ½ΠΎΡΠΈΡΡ Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅.
ΠΠ»Π°ΡΡΡ
1. ΠΠ»Π°ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄Π½Ρ βΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡβ, ΠΎΠ΄Π½Ρ ΠΏΡΠΈΡΠΈΠ½Ρ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΈ ΠΊΠ»Π°ΡΡΠ° RecyclerView.Adapter Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ View Ρ Π΄Π°Π½Π½ΡΠΌ. Π Π½Π΅ΠΌ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΊΠΎΠ΄ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ/ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΡΠΏΠΈΡΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
Π§Π°ΡΡΠΎ Π² ΡΠ°ΠΉΠ» Ρ Activity Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊΠ»Π°ΡΡ RecyclerView.Adapter, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ.
2. ΠΠ΅ Π½ΡΠΆΠ½Ρ ΠΏΡΡΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ· ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°
3. ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ Π±Π΅Π· Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ, ΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ ΡΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ.
ΠΠ°Π³Π»ΡΠ½ΠΈΡΠ΅ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ², Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° Activity, Fragment, View Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
Π‘ΠΎΠ²Π΅ΡΡ ΠΎ ΡΠ°Π·Π½ΠΎΠΌ
1. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Android Studio Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΠ°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΡΠ»ΠΈ ΠΎΠ½Π° ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π΅Ρ ΠΈΠ»ΠΈ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠ΄, Π·Π½Π°ΡΠΈΡ ΡΡΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ ΡΠ°ΠΊ. Π Android Studio Π΅ΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° Rearrange, Reformat, Extract Method, Inline Method, Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΊΠΎΠ΄Π°, Π³ΠΎΡΡΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΈ Ρ.Π΄.
2. ΠΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°ΠΌΠΎΠ΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ.
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΡΡΠ½ΡΡΡ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠΈΡΠΈΠ½Ρ, Π° Π½Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ°ΡΡ Π½Π° ΡΠ΅Π±Ρ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ.
3. Π‘ΡΡΠΎΠΊΠΈ, ΡΠ²Π΅ΡΠ°, ΡΠ°Π·ΠΌΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π² ΡΠ΅ΡΡΡΡΠ°Ρ (xml)
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΠΏΠ°ΠΏΠΎΠΊ test, mock. Π’Π°ΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΡΠ΅Π»ΠΈΠ·Π½ΡΡ Π²Π΅ΡΡΠΈΡ
4. ΠΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ context Π² RecyclerView.Adapter. context ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ· Π»ΡΠ±ΠΎΠΉ view. ΠΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎ ΠΊΠ»ΠΈΠΊΡ Π² RecyclerView.Adapter Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ΅ΡΠ΅Π· notifyItemChanged, Π° Π½Π΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π²ΡΡΡΠ΅ΠΊ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π°ΠΆΠ°ΡΠΈΡ
5. Π RecyclerView.ViewHolder Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΡΠΏΠΈΡΠΊΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ getAdapterPosition, Π° Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ position ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π° onBindViewHolder
ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ:
ΠΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ
6. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Quantity Strings (Plurals) Π΄Π»Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°. ΠΠΌΠ΅ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π² ΠΊΠΎΠ΄Π΅ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Π±ΠΎΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΠ»ΠΎΠ².
7. ΠΠ΅ ΡΠΎΡ
ΡΠ°Π½ΡΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Bitmap Π² bundle. Π Π°Π·ΠΌΠ΅Ρ bundle ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½
8. ΠΡΠ»ΠΈ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ βidβ Π² xml, ΡΠΎ Android ΡΠ°ΠΌ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
View ΠΏΡΠΈ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ΅.