Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Java
ΠΠ»Π°ΡΡ (class) Π‘ΡΡΠΎΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π³ΡΡΠΏΠΏΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄Π°Π½Π½ΡΡ (ΡΠ»Π΅Π½ΠΎΠ²), Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ²ΡΠ·Π°Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΌΠ΅ΡΠΎΠ΄Ρ), Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΡΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΠ°ΠΊΠ΅Ρ PL/SQL Π² ΡΠ΅ΠΌ-ΡΠΎ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΠΊΠ»Π°ΡΡ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Java-ΠΊΠ»Π°ΡΡ. ΠΠ°ΠΊΠ΅Ρ (package) ΠΠ°ΠΊΠ΅Ρ — ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ·ΡΠΊΠ° Java… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Java (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π¦Π΅Π»Ρ: Π½Π°ΡΡΠΈΡΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π°ΠΏΠΏΠ»Π΅Ρ
ΠΠ°Π΄Π°Π½ΠΈΠ΅: Π‘ΠΎΠ·Π΄Π°ΡΡ Π°ΠΏΠΏΠ»Π΅Ρ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½ΠΈΠΆΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΡ Π·Π°Π΄Π°Ρ. ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ³ΡΠ° «ΠΠΌΠ΅ΠΉΠΊΠ°». Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠ°ΠΌΠΈ. ΠΠ½Π°ΡΠ°Π»Π΅ «Π·ΠΌΠ΅ΠΉΠΊΠ°» ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ Π·Π²Π΅Π½ΡΠ΅Π², Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΡ ΠΏΠΈΡΠΈ. ΠΡΠΈ «ΠΏΠΎΠ΅Π΄Π°Π½ΠΈΠΈ» ΠΈΠ· «Π·ΠΌΠ΅ΠΉΠΊΠ°» Π² Π΄Π»ΠΈΠ½Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎ Π·Π²Π΅Π½ΠΎ. ΠΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΠΈΠ³ΡΡ — ΠΊΠ°ΡΠ°Π½ΠΈΠ΅ Π³ΡΠ°Π½ΠΈΡΡ ΡΠΊΡΠ°Π½Π° ΠΈΠ»ΠΈ «ΡΠΊΡΡ» ΡΠ΅Π±Ρ ΡΠ°ΠΌΠΎΠΉ. Π£ΡΠ΅ΡΡΡ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΡΠΈ Π²ΡΠ΅ΠΌΠΈ Π·Π²Π΅Π½ΡΡΠΌΠΈ «Π·ΠΌΠ΅ΠΉΠΊΠΈ».
Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ:
ΠΠ³ΡΠ°. Π Π½Π°ΡΠ°Π»Π΅ ΠΈΠ³ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΎΠΊΠ½ΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ»Π° ΡΡΡΠ»ΠΊΡ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΠΈΠ³ΡΡ. ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π½Π° Π²ΡΠ±ΠΎΡ 4 ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠ° ΠΈΠ³ΡΡ. ΠΡΠ»ΠΈΡΠΈΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΊΠΎΡΠΎΡΡΠΈ. ΠΠΎΡΠ»Π΅ ΠΊΠ»ΠΈΠΊΠ° ΠΏΠΎ Π½Π΅ΠΉ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ³ΡΡ. ΠΠ° ΠΌΠΎΠ½ΠΈΡΠΎΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π΅ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ³ΡΡ. ΠΠ½ΠΈΠ·Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΊΠΎΠ»-Π²ΠΎ Π½Π°Π±ΡΠ°Π½Π½ΡΡ ΠΎΡΠΊΠΎΠ². ΠΠ½ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΠ³ΡΡ. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΊΠΎΡΠΎΡΡΡ ΠΈΠ³ΡΡ, ΡΠ΅ΠΌ Π±ΡΡΡΡΠ΅Π΅ Π½Π°Π±ΠΈΡΠ°ΡΡΡΡ ΠΎΡΠΊΠΈ. ΠΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π² ΠΌΠΎΠ΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ»ΡΠΆΠ°Ρ Π·Π²Π΅Π½ΡΡ Π·ΠΌΠ΅ΠΉΠΊΠΈ. ΠΠ»Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π°Π΄Π°ΠΏΡΠ°ΡΠΈΠΈ ΠΈ Π²ΠΎΡΠΏΡΠΈΡΡΠΈΡ, ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠ½ΠΈ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π° ΡΠΊΡΠ°Π½Π΅. ΠΡΠ»ΠΈ ΠΡ Π²ΡΠ΅Π·Π°Π΅ΡΠ΅ΡΡ Π·ΠΌΠ΅ΠΉΠΊΠΎΠΉ Π² ΡΡΠ΅Π½ΠΊΡ, Π»ΠΈΠ±ΠΎ Π² ΡΠ°ΠΌΡ ΡΠ΅Π±Ρ, ΡΠΎ ΠΈΠ³ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ»Π°ΡΡ (class) Π‘ΡΡΠΎΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π³ΡΡΠΏΠΏΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄Π°Π½Π½ΡΡ (ΡΠ»Π΅Π½ΠΎΠ²), Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ²ΡΠ·Π°Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΌΠ΅ΡΠΎΠ΄Ρ), Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΡΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΠ°ΠΊΠ΅Ρ PL/SQL Π² ΡΠ΅ΠΌ-ΡΠΎ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΠΊΠ»Π°ΡΡ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Java-ΠΊΠ»Π°ΡΡ.
Π’ΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ (datatypes) ΠΡΠ΅ Π² Java ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠ»Π°ΡΡ, ΠΊΡΠΎΠΌΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ . Π’Π°ΠΊ, String ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠ° String, Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅. ΠΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ Java Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΡΡΠ΅ ΡΠΈΠΏΠ° ΡΠ΅Π»ΡΡ , Π° ΡΠ°ΠΊΠΆΠ΅ boolean, char, double, ΠΈ float.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ (instantiation) ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΡΡΠ½ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠ΅ΠΉ ΡΡΡΡΠΊΡΡΡΡ, Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ°ΠΊ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΈΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ°. Π ΡΠ·ΡΠΊΠ΅ PL/SQL Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΠΈΠΏ Π·Π°ΠΏΠΈΡΡ (TYPE) ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π·Π°ΠΏΠΈΡΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΡΠΎΠΌ ΡΠΈΠΏΠ΅.
Π§Π»Π΅Π½ (member) ΠΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² (ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π² Java 1.1), ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π½Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°. ΠΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π²Π½ΡΡΡΠΈ ΡΠ²ΠΎΠΈΡ ΡΠ»Π΅Π½ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠ»Π°ΡΡΠ΅ Π² ΡΠ΅Π»ΠΎΠΌ (ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅Π½Ρ) ΠΈΠ»ΠΈ ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. Π§Π»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠΎΠ²Π½Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° Π² PL/SQL. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ°, Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π½ΠΎΠ²ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠ»Π΅Π½ΠΎΠ². ΠΠ°ΠΊΠ΅Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ²ΠΎΠΈΡ Π΄Π°Π½Π½ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Oracle.
ΠΠ΅ΡΠΎΠ΄ (method) ΠΠ΅ΡΠΎΠ΄ — ΡΡΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Π°Ρ Π³ΡΡΠΏΠΏΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Java, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠ²Π»ΡΡΡΠΈΡ ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°. Π Java Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ (ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ° Π±Π΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ΅ΡΠΎΠ΄ main ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΅Π³Π΄Π° ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ.
ΠΠ±ΡΠ΅ΠΊΡ (object) ΠΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ, ΠΎΠ±ΡΠ΅ΠΊΡ — ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ»Π°ΡΡΠ°. ΠΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠΈΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ ΡΠΈΠΏΠΎΠ² (sorts), ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΌ ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄Π»Ρ ΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ. Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠΌΡΡΠ»Π΅ ΠΎΠ±ΡΠ΅ΠΊΡ — ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΡΠ΅ΡΠ΅ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΠ°ΠΊΠ΅Ρ (package) ΠΠ°ΠΊΠ΅Ρ — ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ·ΡΠΊΠ° Java, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΠΎΠ΄ ΠΎΠ±ΡΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. ΠΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π² Java API ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π½Ρ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ java. ΠΠ½ΡΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° java Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ, ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ°ΠΊΠ΅Ρ java. util ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΡΠΈΠ»ΠΈΡ.
ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ°:
ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
package snake;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class snake extends Applet implements Runnable
{
Image dot[]=new Image[400];
Image back;
Image offI;
Graphics offG;
int x[]= new int[400];
int y[]= new int[400];
int rtemp=1;
int game=1;
int level;
int z;
int n;
int count=0;
int score=0;
int add=1;
Button b= new Button («Beginner»);
Button i= new Button («Intermediate»);
Button p= new Button («Professional»);
Button X= new Button («Xtreamest»);
String stemp;
String s;
String t;
boolean go[]=new boolean[400];
boolean left=false;
boolean right=false;
boolean up=false;
boolean down=false;
boolean started=false ;
boolean me=false;
Thread setTime;
public void init ()
{
add (b);
add (i);
add (p);
add (X);
setBackground (Color.black);
back = getImage (getCodeBase (), «screan.gif»);
for (z=0; z < 400; z++){dot[z] = getImage (getCodeBase (), «dot.gif»); }
}
public void update (Graphics g)
{
Dimension d = this. size ();
if (offI == null)
{
offI = createImage (d.width, d. height);
offG = offI. getGraphics ();
}
offG.clearRect (0, 0, d. width, d. height);
paint (offG);
g.drawImage (offI, 0, 0, null);
}
public void paint (Graphics g)
{
g.drawImage (back, 0, 0, this);
g.setColor (Color.white);
if (started)
{
g.setFont (new Font («Verdana», 1, 12));
t = «Score «+score+» «;
g.drawString (t, 75, 220);
}
if (game==1)
{
g.setFont (new Font («Verdana», 1, 13));
s = «Select Mode» ;
g.drawString (s, 65, 30);
b.move (75, 50);
i.move (68, 90);
p.move (68, 130);
X.move (73, 170);
}
if ((game==2)||(game==3))
{
if (!started)
{
g.setFont (new Font («Verdana», 1, 11));
t = «Use the key board arrows to move!» ;
g.drawString (t, 5, 215);
}
for (z=0; z <= n; z++){ g. drawImage (dot[z], x[z], y[z], this); }
me=true;
}
if (!me)
{
g.setFont (new Font («Verdana», 1, 11));
t = «by Cumka, especially for Tywkanchik» ;
g.drawString (t, 5, 215);
}
if (game==3)
{
g.setFont (new Font («Verdana», 1, 13));
s="Game Over" ;
g.drawString (s, 65, 60);
}
}
public void run ()
{
for (z=4 ;z <400; z++) { go[z]=false;}
for (z=0; z<4; z++) { go[z]=true;x[z]=91;y[z]=91;}
n=3;
game=2;
score=0;
b.move (70, -100);
i.move (70, -100);
p.move (70, -100);
X.move (70, -100);
left=false;
right=false;
up=false;
down=false;
locateRandom (4);
while (true)
{
if (game==2)
{
if ((x[0]==x[n])&&(y[0]==y[n])){go[n]=true;locateRandom ((n+1));score+=add; }
for (z = 399; z > 0; z—)
{
if (go[z])
{
x[z] = x[(z-1)]; y[z] = y[(z-1)];
if ((z>4)&&(x[0]==x[z])&&(y[0]==y[z])){ game=3; }
}
}
if (left){ x[0]-=10; }
if (right){ x[0]+=10; }
if (up){ y[0]-=10; }
if (down){ y[0]+=10; }
}
if (y[0]>191){y[0]=191;game=3;}
if (y[0]<1){y[0]=1;game=3;}
if (x[0]>191){x[0]=191;game=3;}
if (x[0]<1){x[0]=1;game=3;}
if (game==3)
{
if (count <(1500/level)) { count++; } else { count=0;game=1;repaint ();setTime.stop (); }
}
repaint ();
try{setTime.sleep (level);}
catch (InterruptedException e){}
}
}
public void locateRandom (int turn)
{
rtemp=(int)(Math.random ()*20);
x[turn]=((rtemp*10)+1) ;
rtemp=(int)(Math.random ()*20);
y[turn]=((rtemp*10)+1);
n++;
}
public boolean keyDown (Event e, int key)
{
if ((key == Event. LEFT) &&(!right)){left = true; up = false; down = false;if (!started)started=true;}
if ((key == Event. RIGHT) && (!left)){right = true; up = false; down = false;if (!started)started=true;}
if ((key == Event. UP) && (!down)){ up = true; right = false; left = false;if (!started)started=true;}
if ((key == Event. DOWN) && (!up)){down = true; right = false; left = false;if (!started)started=true;}
return true;
}
public boolean action (Event event, Object obj)
{
stemp = (String) obj;
if (stemp.equals («Beginner»))
{
add=2;
level=100;
setTime = new Thread (this);
setTime.start ();
return true;
}
if (stemp.equals («Intermediate»))
{
add=5;
level=70;
setTime = new Thread (this);
setTime.start ();
return true;
}
if (stemp.equals («Professional»))
{
add=10;
level=40;
setTime = new Thread (this);
setTime.start ();
return true;
}
if (stemp.equals («Xtreamest»))
{
add=20;
level=20;
setTime = new Thread (this);
setTime.start ();
return true;
}
return false;
}
}
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
:
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° Java Π±ΡΠ»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° ΠΈ ΡΠΎΠ·Π΄Π°Π½Π° ΠΈΠ³ΡΠ° «ΠΠΌΠ΅ΠΉΠΊΠ°». ΠΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠ²Π»ΡΡΡΡΡ ΡΡΠΊΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³Π»Π°Π²Π½ΡΡ , ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°. Π ΠΌΠΎΠ΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ-Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ·ΡΠΊΠ° Java. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΠΉ.