ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠ΅ ΡΠ°ΡΡ Π½Π° JavaΠΡΡΡΠΎΠ²Π°ΡΠΠΎΠΌΠΎΡΡ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°ΡΡ ΡΡΠΎΠΈΠΌΠΎΡΡΡΠΌΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ ΠΡΡ ΠΏΠΎΠ»ΡΠ²Π΅ΠΊΠΎΠ²Π°Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ², Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΠΈ ΠΈΡΡΠΎΡΠΈΡ Π²ΡΠ΅ΠΉ Π½Π°ΡΠΊΠΈ — ΡΡΠΎ ΠΏΠΎΠΏΡΡΠΊΠ° ΡΠΎΠ²Π»Π°Π΄Π°ΡΡ ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΎΠΊΡΡΠΆΠ°ΡΡΠ΅Π³ΠΎ ΠΌΠΈΡΠ°. ΠΠ°Π΄Π°ΡΠΈ, Π²ΡΡΠ°ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌΠΈ, ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π²ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌΠΈ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π½Π°Π΄ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΡΠ°ΡΡΠ΅Ρ ΠΊΠ°ΠΊ ΡΠ½Π΅ΠΆΠ½ΡΠΉ ΠΊΠΎΠΌ. ΠΡΠ΅ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΠ°ΠΌΠΈ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π±ΡΠ»ΠΈ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡΡ ΠΈ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΡ, Π° ΡΠ΅ΠΉΡΠ°Ρ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎ Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ°Ρ … Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >ΠΡΠ΄Π΅ΡΠΆΠΊΠ°ΠΡΡΠ³ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡΠΠΎΠΌΠΎΡΡ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠ΅ ΡΠ°ΡΡ Π½Π° Java (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)Π€Π΅Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π°Π³Π΅Π½ΡΡΡΠ²ΠΎ ΠΏΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π€Π΅Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΡΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ«Π§ΡΠ²Π°ΡΡΠΊΠΈΠΉ ΠΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ Π£Π½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ ΠΈΠΌΠ΅Π½ΠΈ Π.Π.Π£Π»ΡΡΠ½ΠΎΠ²Π°»ΠΠ»Π°ΡΡΡΡΠΊΠΈΠΉ ΡΠΈΠ»ΠΈΠ°Π» ΠΠ°ΡΠ΅Π΄ΡΠ° ΠΡΡΡΠ΅ΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉΠΡΡΡΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ°ΠΠΎ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΡ: «ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Java»ΠΠ° ΡΠ΅ΠΌΡ: «ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠ΅ ΡΠ°ΡΡ Π½Π° Java»ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΠ»Π°Π²Π° 1 ΠΡΠ½ΠΎΠ²Ρ Java1.1 ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Java-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ1.2 Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ JDKΠΠ»Π°Π²Π° 2 ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Java2.1 ΠΡΠΈΠ½ΡΠΈΠΏΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΠ»Π°Π²Π° 3 ΠΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°3.1 ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΠ»Π°Π²Π° 4 ΠΠΏΠΏΠ»Π΅ΡΡ4.1 ΠΠΏΠΏΠ»Π΅ΡΡ4.2 ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅Π³Π° 4.3 Π‘Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ Π°ΠΏΠΏΠ»Π΅ΡΠ°4.4 ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π²ΡΠΊΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅Π‘ΠΏΠΈΡΠΎΠΊ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Π‘Π½Π°ΡΠ°Π»Π° Java (ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π΄Π΅Π½Ρ ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Java — 23 ΠΌΠ°Ρ 1995 Π³.) ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ°Π»Π°ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΡΠΎΠ²ΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠ΅Π»Π΅ΡΠΎΠ½Ρ. ΠΠΎΡΠΎΠΌ Java ΡΡΠ°Π»Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² — ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π°ΠΏΠΏΠ»Π΅ΡΡ. ΠΠ°ΡΠ΅ΠΌ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ Π½Π° Java ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΠ°Π»ΠΈ ΠΎΡΠΎΡΠΌΠ»ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² — ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ JavaBeans, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Java Π²ΠΎΡΠ»Π° Π² ΠΌΠΈΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠ΅ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π²ΡΠΈΡΡ Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ CORBA. ΠΡΡΠ°Π»ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π³ Π΄ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² — ΡΡΠΎΡ ΡΠ°Π³ Π±ΡΠ» ΡΠ΄Π΅Π»Π°Π½ — ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΡΠ΅ΡΠ²Π»Π΅ΡΡ ΠΈ EJB (Enterprise JavaBeans). Π‘Π΅ΡΠ²Π΅ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ — ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ JDBC (Java DataBase Connection). ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ ΡΠ΄Π°ΡΠ½ΡΠΌ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π²ΠΊΠ»ΡΡΠΈΠ»ΠΈ, Java Π² ΡΠ²ΠΎΠ΅ ΡΠ΄ΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Oracle, Linux, MacOS X, AIX. Π§ΡΠΎ Π΅ΡΠ΅ Π½Π΅ ΠΎΡ Π²Π°ΡΠ΅Π½ΠΎ? ΠΠ°Π·ΠΎΠ²ΠΈΡΠ΅, ΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠ»Π³ΠΎΠ΄Π° ΡΡΠ»ΡΡΠΈΡΠ΅, ΡΡΠΎ Java ΡΠΆΠ΅ Π²ΠΎΠ²ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΈ ΡΠ°ΠΌ. ΠΠ·-Π·Π° ΡΡΠΎΠΉ ΡΠ°Π·ΠΌΡΡΠΎΡΡΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ½ΡΡΠΈΡ Π΅Π³ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΡΠ°Π·ΠΌΡΡΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ — ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ.Π’Π°ΠΊΠΎΠ΅ Π±ΡΡΡΡΠΎΠ΅ ΠΈ ΡΠΈΡΠΎΠΊΠΎΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Java Π½Π΅ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½ΠΎΠ²ΡΠΉ, ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊ ΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ — ΡΠ·ΡΠΊ Java. ΠΡΠΎΡ ΡΠ·ΡΠΊ ΡΠΎΠ·Π΄Π°Π½ Π½Π° Π±Π°Π·Π΅ ΡΠ·ΡΠΊΠΎΠ² Smalltalk, Pascal, C++ ΠΈ Π΄Ρ., Π²ΠΎΠ±ΡΠ°Π² ΠΈΡ Π»ΡΡΡΠΈΠ΅, ΠΏΠΎ ΠΌΠ½Π΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠ΅ΡΡΡ ΠΈ ΠΎΡΠ±ΡΠΎΡΠΈΠ² Ρ ΡΠ΄ΡΠΈΠ΅. ΠΠ° ΡΡΠΎΡ ΡΡΠ΅Ρ Π΅ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΌΠ½Π΅Π½ΠΈΡ, Π½ΠΎ Π±Π΅ΡΡΠΏΠΎΡΠ½ΠΎ, ΡΡΠΎ ΡΠ·ΡΠΊ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° Π½Π΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠ°ΡΡΡΡ ΠΈ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡΡΡ: ΠΏΠ΅ΡΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΆΠ΅ ΡΠ΅ΡΠ΅Π· ΡΠ°Ρ ΠΏΠΎΡΠ»Π΅ Π½Π°ΡΠ°Π»Π° ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ°. Π―Π·ΡΠΊ Java ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ·ΡΠΊΠΎΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΡΠ·ΡΠΊ Pascal Π±ΡΠ» ΡΠ·ΡΠΊΠΎΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.ΠΠ»Π°Π²Π° 1 ΠΡΠ½ΠΎΠ²Ρ Java1.1 ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Java-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡΠΠ°ΠΊ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ·ΡΠΊΠΎΠ² Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΈ ΡΠ·ΡΠΊ Java, ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ («ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊ» ΠΈΠ»ΠΈ «ΡΡΡΠ΅Ρ» Π½Π° ΠΆΠ°ΡΠ³ΠΎΠ½Π΅, ΠΎΡ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ «source»), Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ°Π·Ρ ΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°. ΠΠ΅ ΡΠ½Π°ΡΠ°Π»Π° Π½Π°Π΄ΠΎ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ, Ρ. Π΅. ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ — ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠΎ ΠΈ ΠΎΠ½, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ°Π·Ρ ΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½: ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π°Π΄ΠΎ Π΅ΡΠ΅ ΡΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°ΡΡ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΊΡΠ΅ΡΡΠ½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΊΡΠΈΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΏΠΎΠ»ΡΡΠΈΠ² Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ — ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π³ΠΎΡΠΎΠ²ΡΡ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° Java, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ, Π½ΠΎ Π·Π΄Π΅ΡΡ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π³Π»Π°Π²Π½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Java — ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ ΡΡΠ°Π·Ρ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π½ΠΎ Π½Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Java (JVM, Java Virtual Machine). ΠΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Java — ΡΡΠΎ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ»Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΡΡΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Java ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΡΠ΅ΠΊΠΎΠ²Π°Ρ, ΡΠ°ΠΊ ΡΡΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ»ΠΎΠΆΠ½Π°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ ΡΡΠ΅Π΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ². ΠΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ JVM ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ· Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ Π΄Π»ΠΈΠ½Ρ 1 Π±Π°ΠΉΡ, ΠΎΡΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ JVM Π½Π°Π·ΡΠ²Π°ΡΡ Π±Π°ΠΉΡ^ΠΊΠΎΠ΄Π°ΠΌΠΈ (bytecodes), Ρ ΠΎΡΡ ΠΈΠΌΠ΅ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»ΠΈΠ½ΠΎΠΉ 2 ΠΈ 3 Π±Π°ΠΉΡΠ°. Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡΠΌ ΡΡΠ΅Π΄Π½ΡΡ Π΄Π»ΠΈΠ½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 1,8 Π±Π°ΠΉΡΠ°. ΠΠΎΠ»Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π²ΡΠ΅ΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ JVM ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Java (VMS, Virtual Machine Specification). ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Java, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΡΡΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ.ΠΡΡΠ³Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Java — Π²ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ Π½Π΅ΠΉ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π° Π½Π΅ Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Ρ. ΠΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° (dynamic binding). ΠΡΠΎ ΡΠΎΠΆΠ΅ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΌ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.ΠΡΠ°ΠΊ, Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ Π½Π° ΡΠ·ΡΠΊΠ΅ Java, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Ρ. ΠΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΈΠΏΠ° ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°. ΠΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°ΠΉΡ-ΠΊΠΎΠ΄Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ , ΠΌΠΎΠ³ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ ΠΏΠΎ ΡΠ΅ΡΠΈ. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°ΠΌΠΈ. ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Ρ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π° Π»ΡΠ±ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, ΠΈΠΌΠ΅ΡΡΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ JVM. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π΅ Π²Π°ΠΆΠ΅Π½ Π½ΠΈ ΡΠΈΠΏ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, Π½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°. Π’Π°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ Java «Write once, run anywhere» — «ΠΠ°ΠΏΠΈΡΠ°Π½ΠΎ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π³Π΄Π΅ ΡΠ³ΠΎΠ΄Π½ΠΎ» .ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠ² ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΡΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠ΅Ρ ΡΠΈΡΡΠ°ΡΠΈΡΡ , ΠΊΠΎΠ³Π΄Π° Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΠΎ ΡΠ΅ΡΠΈ, ΡΠ΅ΡΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Π»ΡΠ±ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ, Π½ΠΎ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΌΠΎΡΠ½ΡΠΉ ΠΈ Π±ΡΡΡΡΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΈΠ΄Π΅Ρ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π² ΡΡΠΎΡΠΎΠ½Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ. Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ (Just-In-Time), Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡΠΈΠ΅ ΡΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ°ΡΡΠΊΠΈ ΠΊΠΎΠ΄Π° Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠ΅ ΡΡΠΈ ΡΡΠ°ΡΡΠΊΠΈ ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠΈΠΊΠ»Π°Ρ . ΠΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΡ ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ. Π€ΠΈΡΠΌΠ° SUN ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»Π° ΡΠ΅Π»ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Hot-Spot ΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π΅Π΅ Π² ΡΠ²ΠΎΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ Java. ΠΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ.Π€ΠΈΡΠΌΠ° SUN Microsystems Π²ΡΠΏΡΡΡΠΈΠ»Π° ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ PicoJava, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ JVM, ΠΈ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ Π²ΡΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅Π»ΡΡ Π»ΠΈΠ½Π΅ΠΉΠΊΡ Π²ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½ΡΡ Java-ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ². ΠΡΡΡ ΡΠΆΠ΅ ΠΈ Java-ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΠΌ. ΠΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Ρ. ΠΠΎ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Java Π½Π° Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΅ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ JVM Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, Π° Π·Π½Π°ΡΠΈΡ, Π½ΡΠΆΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°-ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ, ΠΏΡΠΈΡΠ΅ΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ², ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ.ΠΡΠ° Π·Π°Π΄Π°ΡΠ° ΡΠΆΠ΅ ΡΠ΅ΡΠ΅Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ. ΠΠ° Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ Java, Π° Π΄Π»Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ ΠΈΠΌΠ΅Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ JVM ΡΠ°Π·Π½ΡΡ ΡΠΈΡΠΌ. ΠΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΡΠΈΡΡΠ΅ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ JVM Π² ΡΠ²ΠΎΠ΅ ΡΠ΄ΡΠΎ. Π‘ΠΎΠ·Π΄Π°Π½Π° ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° JavaOS, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠ°Ρ Π² ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ . Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² Π²ΡΡΡΠΎΠ΅Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Java Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°ΠΏΠΏΠ»Π΅ΡΠΎΠ².ΠΠ½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΡΠΆΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΠ», ΡΡΠΎ ΠΊΡΠΎΠΌΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ JVM Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠ² Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Π΅ΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΡ ΠΈΠ· Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠ² ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΡΡΡΠΈΡ ΡΡ Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°ΠΌΠΈ. ΠΡΠΎΡ Π½Π°Π±ΠΎΡ ΠΎΡΠΎΡΠΌΠ»ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Java, ΡΠΎΡΡΠΎΡΡΠ΅ΠΉ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Π° Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°ΠΌΠΈ, Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΡΠΌΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, ΠΈΠ·Π±Π΅Π³Π½ΡΠ² ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠ². Π’Π°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°Π·ΡΠ²Π°ΡΡ " ΡΠΎΠ΄Π½ΡΠΌΠΈ" ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ (native methods). ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ «ΡΠΎΠ΄Π½ΡΡ » ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΡΠΊΠΎΡΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.Π€ΠΈΡΠΌΠ° SUN Microsystems — ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Java — Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅Ρ Π½Π°Π±ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ: ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ, ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ ΠΈ Π±ΠΎΠ³Π°ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ JDK (Java Development Kit). ΠΡΡΡ Π½Π°Π±ΠΎΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ JDK ΡΠΈΡΠΌΡ IBM.1.2 Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ JDKΡΠ°ΡΡ java Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π°ΠΏΠΏΠ»Π΅Ρ ΠΠ°Π±ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² JDK ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ:Β· ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ javac ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Ρ; ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ java, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ JVM;Β· ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ jre (Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ);Β· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π°ΠΏΠΏΠ»Π΅ΡΠΎΠ² appietviewer, Π·Π°ΠΌΠ΅Π½ΡΡΡΡΡ Π±ΡΠ°ΡΠ·Π΅Ρ;Β· ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ jdt>;Β· Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ javap;Β· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π°ΡΡ ΠΈΠ²Π°ΡΠΈΠΈ ΠΈ ΡΠΆΠ°ΡΠΈΡ jar;Β· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ±ΠΎΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ javadoc;Β· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ javah Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ·ΡΠΊΠ° Π‘;Β· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ javakey Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ;Β· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ native2ascii, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅;Β· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ rmic ΠΈ rmiregistry Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ;Β· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ seriaiver, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π½ΠΎΠΌΠ΅Ρ Π²Π΅ΡΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°;Β· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ «ΡΠΎΠ΄Π½ΡΡ » ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²;Β· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠΎΠ² Java API (Application Programming Interface).Π 1996 Π³. Π±ΡΠ»Π° Π²ΡΠΏΡΡΠ΅Π½Π° ΠΏΠ΅ΡΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ JDK 1.0, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π»Π°ΡΡ Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ 1.0.2. Π ΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠ»Π°ΡΡΠΎΠ² Java API ΡΠΎΠ΄Π΅ΡΠΆΠ°Π»Π° 8 ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². ΠΠ΅ΡΡ Π½Π°Π±ΠΎΡ JDK 1.0.2 ΠΏΠΎΡΡΠ°Π²Π»ΡΠ»ΡΡ Π² ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΎΠΊΠΎΠ»ΠΎ 5 ΠΠ±Π°ΠΉΡ, Π° ΠΏΠΎΡΠ»Π΅ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π·Π°Π½ΠΈΠΌΠ°Π» ΠΎΠΊΠΎΠ»ΠΎ 8 ΠΠ±Π°ΠΉΡ Π½Π° Π΄ΠΈΡΠΊΠ΅.Π 1997 Π³. ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π²Π΅ΡΡΠΈΡ JDK 1.1, ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π΅Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ, 1.1.8, Π²ΡΠΏΡΡΠ΅Π½Π° Π² 1998 Π³. Π ΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π±ΡΠ»ΠΎ 23 ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΊΠ»Π°ΡΡΠΎΠ², Π·Π°Π½ΠΈΠΌΠ°Π»Π° ΠΎΠ½Π° 8,5 ΠΠ±Π°ΠΉΡ Π² ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΈ ΠΎΠΊΠΎΠ»ΠΎ 30 ΠΠ±Π°ΠΉΡ Π½Π° Π΄ΠΈΡΠΊΠ΅.Π ΠΏΠ΅ΡΠ²ΡΡ Π²Π΅ΡΡΠΈΡΡ JDK Π²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Java API Π±ΡΠ»ΠΈ ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Ρ Π² ΠΎΠ΄ΠΈΠ½ Π°ΡΡ ΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ» classes. zip ΠΈ Π²ΡΠ·ΡΠ²Π°Π»ΠΈΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· ΡΡΠΎΠ³ΠΎ Π°ΡΡ ΠΈΠ²Π°, Π΅Π³ΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡ.ΠΠ°ΡΠ΅ΠΌ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² JDK Π±ΡΠ» ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½.ΠΠ΅ΡΡΠΈΡ JDK 1.2 Π²ΡΡΠ»Π° Π² Π΄Π΅ΠΊΠ°Π±ΡΠ΅ 1998 Π³. ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π»Π° ΡΠΆΠ΅ 57 ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΊΠ»Π°ΡΡΠΎΠ². Π Π°ΡΡ ΠΈΠ²Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΡΡΠΎ ΡΠ°ΠΉΠ» ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΏΠΎΡΡΠΈ 20 ΠΠ±Π°ΠΉΡ ΠΈ Π΅ΡΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ 17 ΠΠ±Π°ΠΉΡ Ρ ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ. ΠΠΎΠ»Π½Π°Ρ Π²Π΅ΡΡΠΈΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° 130 ΠΠ±Π°ΠΉΡΠ°Ρ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°, ΠΈΠ· Π½ΠΈΡ ΠΎΠΊΠΎΠ»ΠΎ 80 ΠΠ±Π°ΠΉΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.ΠΠ°ΡΠΈΠ½Π°Ρ Ρ ΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, Π²ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Java ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ SUN ΡΡΠ°Π»Π° Π½Π°Π·ΡΠ²Π°ΡΡ Java 2 Platform, Standard Edition, ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΠΎ J2SE, a JDK ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π»Π° Π² Java 2 SDK, Standard Edition (Software Development Kit), ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΠΎ J2SDK, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π΅ΡΠ΅ Java 2 SDK Enterprise Edition ΠΈ Java 2 SDK Micro Edition. ΠΠΏΡΠΎΡΠ΅ΠΌ, ΡΠ°ΠΌΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ SUN ΡΠ°ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈ ΡΡΠ°ΡΡΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ, Π° Π² Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ΅ ΡΡΠ²Π΅ΡΠ΄ΠΈΠ»ΠΎΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Java 2. ΠΡΠΎΠΌΠ΅ 57 ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΊΠ»Π°ΡΡΠΎΠ², ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ Π½Π° Π»ΡΠ±ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Core API, Π² Java 2 SDK vl.2 Π²Ρ ΠΎΠ΄ΡΡ Π΅ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ Standard Extension API. Π Π²Π΅ΡΡΠΈΠΈ Java 2 SDK SE, vl.3, Π²ΡΡΠ΅Π΄ΡΠ΅ΠΉ Π² 2000 Π³., ΡΠΆΠ΅ 76 ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ Core API.Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²Π΅ΡΡΠΈΡ JDK 1.0.2 ΡΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ. ΠΠ΅ΡΡΠΈΡ JDK 1.1.5 Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ AWT Π²ΡΡΡΠΎΠ΅Π½Π° Π² ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ Internet Explorer 5.0 ΠΈ Netscape Communicator 4.7, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°ΠΏΠΏΠ»Π΅ΡΠΎΠ². Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Java 2 ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ ΠΈ Π² ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ .ΠΡΠΎΠΌΠ΅ JDK, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ SUN ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅Ρ Π΅ΡΠ΅ ΠΈ Π½Π°Π±ΠΎΡ JRE (Java Runtime Environment).ΠΠ»Π°Π²Π° 2 ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² JavaΠΡΡ ΠΏΠΎΠ»ΡΠ²Π΅ΠΊΠΎΠ²Π°Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ², Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΠΈ ΠΈΡΡΠΎΡΠΈΡ Π²ΡΠ΅ΠΉ Π½Π°ΡΠΊΠΈ — ΡΡΠΎ ΠΏΠΎΠΏΡΡΠΊΠ° ΡΠΎΠ²Π»Π°Π΄Π°ΡΡ ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΎΠΊΡΡΠΆΠ°ΡΡΠ΅Π³ΠΎ ΠΌΠΈΡΠ°. ΠΠ°Π΄Π°ΡΠΈ, Π²ΡΡΠ°ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌΠΈ, ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π²ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌΠΈ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π½Π°Π΄ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΡΠ°ΡΡΠ΅Ρ ΠΊΠ°ΠΊ ΡΠ½Π΅ΠΆΠ½ΡΠΉ ΠΊΠΎΠΌ. ΠΡΠ΅ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΠ°ΠΌΠΈ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π±ΡΠ»ΠΈ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡΡ ΠΈ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΡ, Π° ΡΠ΅ΠΉΡΠ°Ρ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎ Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ°Ρ ΠΈ ΡΠ΅ΡΠ°Π±Π°ΠΉΡΠ°Ρ . ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Π·Π°Π΄Π°Ρ, ΡΡΡ ΠΆΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅, Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΏΡΠΈΠ΄ΡΠΌΡΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ·ΡΠΊΠΈ. ΠΠ° ΠΏΠΎΠ»Π²Π΅ΠΊΠ° ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠ΅Π½ ΡΠ·ΡΠΊΠΎΠ², ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΡΡΠΈΠ»Π΅ΠΉ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΡΡΠΈΠ»ΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΡΠΌΠΈ ΠΈ ΠΎΠ±ΡΠ°Π·ΡΡΡ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.2.1 ΠΡΠΈΠ½ΡΠΈΠΏΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ Π΄Π²Π°Π΄ΡΠ°ΡΠΈ Π»Π΅Ρ. ΠΠΌΠ΅Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΊΠΎΠ», ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ²ΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΈ ΠΏΠΎ-ΡΠ²ΠΎΠ΅ΠΌΡ ΠΈΠ·Π»Π°Π³Π°Π΅Ρ ΡΡΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ. ΠΠΎ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΡΡ ΠΏΠΎΠ½ΡΡΠΈΠΉ. ΠΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌ ΠΈΡ .1. ΠΠ±ΡΡΡΠ°ΠΊΡΠΈΡ-ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² (classes). ΠΠ»Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ, ΡΠ»Π΅ΠΏΠΊΠΎΠΌ, ΡΠ΅ΡΡΠ΅ΠΆΠΎΠΌ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π·Π°ΡΠ΅ΠΌ Π±ΡΠ΄ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠ»Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ½ΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° (class fields). ΠΡΠΎΡΠ΅Π΄ΡΡΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° (class methods). ΠΠ½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ (nested classes) ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. ΠΠΎΠ»Ρ, ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΡΠ²Π»ΡΡΡΡΡ ΡΠ»Π΅Π½Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° (class members). Π Π°Π·Π½ΡΠ΅ ΡΠΊΠΎΠ»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Ρ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΠΏΡΠΈΠ½ΡΡΡΡ Π² ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Java.2. ΠΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π΄Π°Π²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄Π»Ρ ΠΈΡ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΡΠΎΠ±Π΅Π½Π½ΠΎ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠ½Π° ΠΏΡΠΎΡΠ°Π±ΠΎΡΠ°Π½Π° Π² Π±ΠΈΠΎΠ»ΠΎΠ³ΠΈΠΈ. ΠΡΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π°ΠΌΠΈ, ΡΠΎΠ΄Π°ΠΌΠΈ ΠΈ Π²ΠΈΠ΄Π°ΠΌΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΈΡ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΡ ΠΆΠΈΠ²ΠΎΡΠ½ΡΡ (pets): ΠΊΠΎΡΠ΅ΠΊ (cats), ΡΠΎΠ±Π°ΠΊ (dogs), ΠΊΠΎΡΠΎΠ² (cows) ΠΈ ΠΏΡΠΎΡΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.3. ΠΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡ-ΠΡΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ — ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ. Π§Π»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ°, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·Π²Π½Π΅, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½Ρ.4. ΠΡΠΈΠ½ΡΠΈΠΏ KISSΠ‘Π°ΠΌΡΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ, Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΈ ΡΠ°ΠΌΡΠΉ Π²Π΅Π»ΠΈΠΊΠΈΠΉ : ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ — ΠΏΡΠΈΠ½ΡΠΈΠΏ KISS — Π½Π΅ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² ΡΠ°Π·ΡΡΡΠ½Π΅Π½ΠΈΠΉ : ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π΅: «Keep It Simple, Stupid!»ΠΠ»Π°Π²Π° 3 ΠΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌ: MS Windows, X Window System, Macintosh. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ ΡΠ²ΠΎΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΎΠΊΠΎΠ½ ΠΈ ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²: ΠΌΠ΅Π½Ρ, ΠΏΠΎΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π°, ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΡΠΏΠΈΡΠΊΠΎΠ², ΠΏΠΎΠ»ΠΎΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ. ΠΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠ»ΠΎΠΆΠ½Ρ ΠΈ Π·Π°ΠΏΡΡΠ°Π½Π½Ρ. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ API ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠΎΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ.ΠΠ»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠΊΠΎΠ½ ΠΈ ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ²: MFC, Motif, OpenLook, Qt, Tk, Xview, OpenWindows ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ . ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΠ°Π·Ρ ΡΠ΅Π»ΡΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΡΡΠΎΠ³ΠΎ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ².Π ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Java Π΄Π΅Π»ΠΎ ΠΎΡΠ»ΠΎΠΆΠ½ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Java Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π»ΡΠ±ΠΎΠΉ ΠΈΠ»ΠΈ Ρ ΠΎΡΡ Π±Ρ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π΄Π°Ρ . ΠΡΠΆΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠ»Π°ΡΡΠΎΠ², Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ°Ρ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π ΠΏΠ΅ΡΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ JDK Π·Π°Π΄Π°ΡΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: Π±ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΠ»Π°ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ AWT ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Java ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ², Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠ»Π°ΡΡΠΎΠ² Java, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° peer-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ , ΠΏΠΎΠ»ΡΡΠΈΠ»Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ AWT (Abstract Window Toolkit). ΠΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Java ΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° peer-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅, Π½Π° ΡΠΊΡΠ°Π½ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΠ°ΡΠ½ΡΠΉ Π΅ΠΌΡ (peer-to-peer) ΠΎΠ±ΡΠ΅ΠΊΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅. ΠΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ΅ΡΠ½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΡΡΠΎΠΌΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ AWT Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ΅Π΄Π΅ ΠΈΠΌΠ΅ΡΡ Π²ΠΈΠ΄, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΠΉ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΡΠ΅Π΄Ρ: Π² MS Windows, Motif, OpenLook, OpenWindows, Π²Π΅Π·Π΄Π΅ ΠΎΠΊΠ½Π°, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π² AWT, Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΊΠ°ΠΊ «ΡΠΎΠ΄Π½ΡΠ΅» ΠΎΠΊΠ½Π°.ΠΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·-Π·Π° ΡΠ°ΠΊΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ peer-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ «ΡΠΎΠ΄Π½ΡΡ » ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ , Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π° ΡΠ·ΡΠΊΠ΅ C++, ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π²ΡΠΏΡΡΠΊΠ°ΡΡ ΡΠ²ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ JDK.Π Π²Π΅ΡΡΠΈΠΈ JDK 1.1 Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° AWT Π±ΡΠ»Π° ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½Π°. Π Π½Π΅Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° Java ΠΈ Π½Π΅ Π·Π°Π²ΠΈΡΡΡΠΈΡ ΠΎΡ peer-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². Π’Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΡΠ°Π»ΠΈ Π½Π°Π·ΡΠ²Π°ΡΡ " Π»Π΅Π³ΠΊΠΈΠΌΠΈ" (lightweight) Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· peer-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, Π½Π°Π·Π²Π°Π½Π½ΡΡ " ΡΡΠΆΠ΅Π»ΡΠΌΠΈ" (heavy)." ΠΠ΅Π³ΠΊΠΈΠ΅" ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π²Π΅Π·Π΄Π΅ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π²ΠΈΠ΄ (look and feel). ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π²ΠΈΠ΄: Motif, Metal, Windows 95 ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ Π΄ΡΡΠ³ΠΎΠΉ, ΠΈ ΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎΡ Π²ΠΈΠ΄ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ°Π±ΠΎΡΡ.ΠΡΠ° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ «Π»Π΅Π³ΠΊΠΈΡ » ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΏΠΎΠ»ΡΡΠΈΠ»Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ PL&F (Pluggable Look and Feel) ΠΈΠ»ΠΈ «plaf.ΠΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π° ΠΎΠ±ΡΠΈΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° «Π»Π΅Π³ΠΊΠΈΡ » ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΡ Java, Π½Π°Π·Π²Π°Π½Π½Π°Ρ Swing. Π Π½Π΅ΠΉ Π±ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½Ρ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ AWT, ΡΠ°ΠΊ ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Swing ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈΠ· Π½Π΅Π΅ ΡΠ°ΡΡΠΈΡΡΡΡ ΠΊΠ»Π°ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ AWT.ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠ»Π°ΡΡΠΎΠ² Swing ΠΏΠΎΡΡΠ°Π²Π»ΡΠ»Π°ΡΡ ΠΊΠ°ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ JDK 1.1. Π ΡΠΎΡΡΠ°Π² Java 2 SDK ΠΎΠ½Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ°Ρ ΠΈΠ΄Π΅Ρ «100% Pure Java», Π½Π°ΡΡΠ΄Ρ Ρ AWT.Π Java 2 Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° AWT Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠΎΠ² ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Java 2D, ΠΈ ΡΡΠ΅Π΄ΡΡΠ², ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ DnD (Drag and Drop).ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² Java 2 Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° Input Method Framework ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ²ΡΠ·ΠΈ Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠ΅ ΠΏΠ΅ΡΠΎ ΠΈΠ»ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° ΠΡΠΎΠΉΠ»Ρ, Π½Π°Π·Π²Π°Π½Π½ΡΠ΅ Accessibility.ΠΡΠ΅ ΡΡΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Java 2: AWT, Swing, Java 2D, DnD, Input Method Framework ΠΈ Accessibility ΡΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π΄ΡΡΠ² Java, Π½Π°Π·Π²Π°Π½Π½ΡΡ JFC (Java Foundation Classes).ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠΎΡΡΠ°Π²ΠΈΡ ΡΠ΅Π»ΡΡ ΠΊΠ½ΠΈΠ³Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ AWT.3.1 ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (ΠΠΠ) — ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (component) Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΡΡΠΎ ΡΠ»ΠΎΠ²ΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΠΏΡΠΎΡΡΠΎ ΡΠΎΡΡΠ°Π²Π½ΡΡ ΡΠ°ΡΡΡ, ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΅Π³ΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ, Π½ΠΎ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΡΡΠΎ ΠΏΠΎΠ½ΡΡΠΈΠ΅ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π΅Π΅. ΠΠ½ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, ΠΊΠ½ΠΎΠΏΠΊΠ°, ΡΡΡΠΎΠΊΠ° ΠΌΠ΅Π½Ρ, ΠΏΠΎΠ»ΠΎΡΠ° ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, ΡΠ°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠ°. Π‘Π°ΠΌΠΎ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ — ΡΠΎΠΆΠ΅ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ°Π½Π΅Π»Ρ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΠΎΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ.ΠΡ Π½Π΅ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅ΡΡ, ΡΠ·Π½Π°Π², ΡΡΠΎ Π² AWT ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Component ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Π²ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠ°ΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡ component. Π ΠΊΠ»Π°ΡΡΠ΅ component ΡΠΎΠ±ΡΠ°Π½Ρ ΠΎΠ±ΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π»ΡΠ±ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ — ΡΠ΅Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ AWT.ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ Π½Π° ΡΠΊΡΠ°Π½ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ (container). ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ «Π·Π½Π°Π΅Ρ», ΠΊΠ°ΠΊ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅. Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π² ΡΠ·ΡΠΊΠ΅ Java ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ — ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Container ΠΈΠ»ΠΈ Π²ΡΡΠΊΠΎΠ³ΠΎ Π΅Π³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ. ΠΡΡΠΌΠΎΠΉ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° — ΠΊΠ»Π°ΡΡ jcomponent — Π²Π΅ΡΡΠΈΠ½Π° ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Swing.Π‘ΠΎΠ·Π΄Π°Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ — ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Component ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅Π³ΠΎ ΠΊ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° container ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² add ().ΠΠ»Π°ΡΡ Container ΡΠ°ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ, ΠΎΠ½ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΊΠ»Π°ΡΡ Component. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π½Π°ΡΡΠ΄Ρ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π΄ΠΎΡΡΠΈΠ³Π°Ρ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π±ΠΎΠ»ΡΡΠΎΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π°ΠΊΡΠΈΠ²Π½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΠ΅Π΅ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΏΠΎ ΡΠΊΡΠ°Π½Ρ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ, ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π΄Π΅ΠΉΡΡ;Π²ΠΈΡ ΠΌΡΡΠΈ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. Π ΠΎΠΊΠ½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.Β· Π‘ΡΡΠΎΠΊΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° (title bar), Ρ Π»Π΅Π²ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ, Π° Ρ ΠΏΡΠ°Π²ΠΎΠΉ — ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΠ²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΠΎΠΊΠ½Π° ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ Π·Π°ΠΊΡΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.Β· ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΌΠ΅Π½Ρ (menu bar) Ρ Π²ΡΠΏΠ°Π΄Π°ΡΡΠΈΠΌΠΈ ΠΏΡΠ½ΠΊΡΠ°ΠΌΠΈ ΠΌΠ΅Π½Ρ.Β· ΠΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½Π°Ρ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ (scrollbars).Β· ΠΠΊΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΎ ΡΠ°ΠΌΠΊΠΎΠΉ (border), ΡΠ΅Π°Π³ΠΈΡΡΡΡΠ΅ΠΉ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΡΡΠΈ.ΠΠΊΠ½ΠΎ Ρ ΡΡΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ Π² Π³ΠΎΡΠΎΠ²ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΊΠ»Π°ΡΡΠ΅ Frame. Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠΊΠ½ΠΎ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠ»Π°ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ° Frame, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 8.1. ΠΡΠ΅Π³ΠΎ Π²ΠΎΡΠ΅ΠΌΡ ΡΡΡΠΎΠΊ ΡΠ΅ΠΊΡΡΠ° ΠΈ ΠΎΠΊΠ½ΠΎ Π³ΠΎΡΠΎΠ²ΠΎ.ΠΠ»Π°Π²Π° 4 ΠΠΏΠΏΠ»Π΅ΡΡ4.1 ΠΠΏΠΏΠ»Π΅ΡΡΠΡΠΎΠΌΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ·ΡΠΊ Java ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π°ΠΏΠΏΠ»Π΅ΡΡ (applets). ΠΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π² ΡΡΠ΅Π΄Π΅ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ — Π±ΡΠ°ΡΠ·Π΅ΡΠ°. ΠΠΏΠΏΠ»Π΅ΡΡ Π½Π΅ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² ΠΎΠΊΠ½Π΅ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ — ΠΈΠΌ ΡΠ»ΡΠΆΠΈΡ ΠΎΠΊΠ½ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ°. ΠΠ½ΠΈ Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ JVM — ΠΈΡ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π±ΡΠ°ΡΠ·Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΌ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ JVM Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°ΠΏΠΏΠ»Π΅ΡΠ°. ΠΡΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΎΡΡΠ°ΠΆΠ°ΡΡΡΡ Π½Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π°ΠΏΠΏΠ»Π΅ΡΠ°.Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° Java, Π°ΠΏΠΏΠ»Π΅Ρ — ΡΡΠΎ Π²ΡΡΠΊΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Applet, ΠΊΠΎΡΠΎΡΡΠΉ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΊΠ»Π°ΡΡ panel. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π°ΠΏΠΏΠ»Π΅Ρ — ΡΡΠΎ ΠΏΠ°Π½Π΅Π»Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ. ΠΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ Panel, ΡΠ»ΡΠΆΠΈΡ FiowLayout. ΠΠ»Π°ΡΡ Applet Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ java. applet, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΡΠΎΠΌΠ΅ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. ΠΠ°Π΄ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π½Π΅ Π²ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ.ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ JVM Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π°ΠΏΠΏΠ»Π΅Ρ, ΠΎΡΠΏΠ°Π΄Π°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ main (), Π΅Π³ΠΎ Π½Π΅Ρ Π² Π°ΠΏΠΏΠ»Π΅ΡΠ°Ρ .Π Π°ΠΏΠΏΠ»Π΅ΡΠ°Ρ ΡΠ΅Π΄ΠΊΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. ΠΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π΅ΡΠ΅ Π½Π΅ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ Π²ΡΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΄Π°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅.ΠΠ°ΡΠ°Π»ΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π΅ mamo, Π² Π°ΠΏΠΏΠ»Π΅ΡΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄ inito ΠΊΠ»Π°ΡΡΠ° Applet. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π°Π²ΡΠΎΠΌΠ°ΡΠ°ΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Java Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π°ΠΏΠΏΠ»Π΅ΡΠ°. ΠΠΎΡ ΠΊΠ°ΠΊ ΠΎΠ½ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΊΠ»Π°ΡΡΠ° Applet:public void init (){}ΠΠ΅Π³ΡΡΡΠΎ! ΠΠ΅ΡΠΎΠ΄ init () Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π°ΠΏΠΏΠ»Π΅ΡΠ΅ — ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ΅ ΠΊΠ»Π°ΡΡΠ° Applet. ΠΠ±ΡΠ°ΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ — Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ² — Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² ΠΌΠ΅ΡΠΎΠ΄ destroy ΠΎ, ΡΠΎΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ Π²ΡΠ³ΡΡΠ·ΠΊΠ΅ Π°ΠΏΠΏΠ»Π΅ΡΠ°. Π ΠΊΠ»Π°ΡΡΠ΅ Applet Π΅ΡΡΡ ΠΏΡΡΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°.ΠΡΠΎΠΌΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² init () ΠΈ destroy () Π² ΠΊΠ»Π°ΡΡΠ΅ Applet ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π΅ΡΠ΅ Π΄Π²Π° ΠΏΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΡΠ°ΡΠ·Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ start () ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠΈ Π°ΠΏΠΏΠ»Π΅ΡΠ° Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΈ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ stop(), ΠΊΠΎΠ³Π΄Π° Π°ΠΏΠΏΠ»Π΅Ρ ΡΡ ΠΎΠ΄ΠΈΡ Ρ ΡΠΊΡΠ°Π½Π°. Π ΠΌΠ΅ΡΠΎΠ΄Π΅ stop () ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Π°ΠΏΠΏΠ»Π΅ΡΠ°, Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ start () — Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΠΈΠ΅ Π΅Π΅. ΠΠ°Π΄ΠΎ ΡΡΠ°Π·Ρ ΠΆΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π½Π΅ Π²ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½ΠΎ.4.2 ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅Π³Π° <applet>ΠΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌ Π²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅Π³Π° .ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:Β· code — URL-Π°Π΄ΡΠ΅Ρ ΡΠ°ΠΉΠ»Π° Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ Π°ΠΏΠΏΠ»Π΅ΡΠ° ΠΈΠ»ΠΈ Π°ΡΡ ΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°;Β· width ΠΈ height — ΡΠΈΡΠΈΠ½Π° ΠΈ Π²ΡΡΠΎΡΠ° Π°ΠΏΠΏΠ»Π΅ΡΠ° Π² ΠΏΠΈΠΊΡΠ΅Π»Π°Ρ .ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:Β· codebase — URL-Π°Π΄ΡΠ΅Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ ΡΠ°ΠΉΠ» ΠΊΠ»Π°ΡΡΠ° Π°ΠΏΠΏΠ»Π΅ΡΠ°. ΠΡΠ»ΠΈ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, Π±ΡΠ°ΡΠ·Π΅Ρ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ ΡΠ°ΠΉΠ» Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, Π³Π΄Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ HTML-ΡΠ°ΠΉΠ»;Β· archive — ΡΠ°ΠΉΠ»Ρ Π²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ Π°ΠΏΠΏΠ»Π΅Ρ, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Ρ Π°ΡΡ ΠΈΠ²Π°ΡΠΎΡΠΎΠΌ ZIP ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌ Π°ΡΡ ΠΈΠ²Π°ΡΠΎΡΠΎΠΌ JAR Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°ΡΡ ΠΈΠ²Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ Π·Π°Π΄Π°Π΅Ρ URL-Π°Π΄ΡΠ΅ΡΠ° ΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ;Β· align — Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ Π°ΠΏΠΏΠ»Π΅ΡΠ° Π² ΠΎΠΊΠ½Π΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ°. ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ: ABSBOTTOM, ABSMIDDLE, BASELINE, BOTTOM, CENTER, LEFT, MIDDLE, RIGHT, TEXTTOP, TOP;Β· hspace ΠΈ vspace — Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ, ΠΎΡΠ΄Π΅Π»ΡΡΡΠΈΠ΅ Π°ΠΏΠΏΠ»Π΅Ρ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΎΠΊΠ½Π΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Π² ΠΏΠΈΠΊΡΠ΅Π»Π°Ρ ;Β· download — Π·Π°Π΄Π°Π΅Ρ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π°ΠΏΠΏΠ»Π΅ΡΠΎΠΌ. ΠΠΌΠ΅Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡΡΡ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ;Β· name — ΠΈΠΌΡ Π°ΠΏΠΏΠ»Π΅ΡΠ°. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ Π½ΡΠΆΠ΅Π½, Π΅ΡΠ»ΠΈ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°ΠΏ-ΠΏΠ»Π΅ΡΠΎΠ² Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ code ΠΈ codebase ;Β· style — ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΡΠΈΠ»Π΅ CSS (Cascading Style Sheet); title — ΡΠ΅ΠΊΡΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠΉ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°ΠΏΠΏΠ»Π΅ΡΠ°;Β· alt — ΡΠ΅ΠΊΡΡ, Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΠΉ Π²ΠΌΠ΅ΡΡΠΎ Π°ΠΏΠΏΠ»Π΅ΡΠ°, Π΅ΡΠ»ΠΈ Π±ΡΠ°ΡΠ·Π΅Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π΅Π³ΠΎ;Β· mayscript — Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠΎ ΡΠ»ΠΎΠ²ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ Π°ΠΏΠΏΠ»Π΅Ρ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ΅ΠΊΡΡΡ JavaScript.ΠΠ΅ΡΠΎΠ΄ getCodeBase () Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ URL-Π°Π΄ΡΠ΅Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π»Π΅ΠΆΠΈΡ ΡΠ°ΠΉΠ» ΠΊΠ»Π°ΡΡΠ° Π°ΠΏΠΏΠ»Π΅ΡΠ°.4.3 Π‘Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ Π°ΠΏΠΏΠ»Π΅ΡΠ°ΠΠ΅ΡΠΎΠ΄ getoocumentBase () Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ URL-Π°Π΄ΡΠ΅Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π»Π΅ΠΆΠΈΡ HTML-ΡΠ°ΠΉΠ», Π²ΡΠ·Π²Π°Π²ΡΠΈΠΉ Π°ΠΏΠΏΠ»Π΅Ρ.ΠΡΠ°ΡΠ·Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Appletcontext, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠΉΡΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ java.applet. ΠΠΏΠΏΠ»Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ getAppletContext ().Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² getApplet (String name) ΠΈ getApplets () ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Appletcontext ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ name Π°ΠΏΠΏΠ»Π΅Ρ ΠΈΠ»ΠΈ Π½Π° Π²ΡΠ΅ Π°ΠΏΠΏΠ»Π΅ΡΡ, Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ Π² Π±ΡΠ°ΡΠ·Π΅Ρ.ΠΠ΅ΡΠΎΠ΄ showDocument (URL address) Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π² Π±ΡΠ°ΡΠ·Π΅Ρ HTML-ΡΠ°ΠΉΠ» Ρ Π°Π΄ΡΠ΅ΡΠ° address.ΠΠ΅ΡΠΎΠ΄ showDocument (URL address, String target) Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΡΠ°ΠΉΠ» Π²ΠΎ ΡΡΠ΅ΠΉΠΌ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π²ΡΠΎΡΡΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ target. ΠΡΠΎΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:Β· _seif — ΡΠΎ ΠΆΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΡΠ΅ΠΉΠΌ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π°ΠΏΠΏΠ»Π΅Ρ;Β· _parent — ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΡΠ΅ΠΉΠΌ Π°ΠΏΠΏΠ»Π΅ΡΠ°;Β· _top — ΡΡΠ΅ΠΉΠΌ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΎΠΊΠ½Π° Π°ΠΏΠΏΠ»Π΅ΡΠ°;Β· _biank — Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ;Β· name — ΡΡΠ΅ΠΉΠΌ ΠΈΠ»ΠΈ ΠΎΠΊΠ½ΠΎ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ name, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΎ.4.4 ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π²ΡΠΊΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² Java — ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° image, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ². ΠΠ³ΠΎ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ drawimageo ΠΊΠ»Π°ΡΡΠ° Graphics. ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅, Π° ΠΏΠΎΠΊΠ° Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ Π΄Π²Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°:drawlmage (Image img, int x, int y, ImageObserver obs)drawImage (Image img, int x, int y, int width, int height,ImageObserver obs)ΠΠ΅ΡΠΎΠ΄Ρ Π½Π°ΡΠΈΠ½Π°ΡΡ ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π½Π΅ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ img. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π·Π°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ Π½Π°ΡΠ½Π΅ΡΡΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΡΠ·Π²Π°Π½ ΠΌΠ΅ΡΠΎΠ΄ drawlmage (). ΠΠ΅ΡΠΎΠ΄Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ false, ΠΏΠΎΠΊΠ° Π·Π°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ.ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ (Ρ , Ρ) Π·Π°Π΄Π°ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ³Π»Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ img; width ΠΈ height — ΡΠΈΡΠΈΠ½Ρ Π²ΡΡΠΎΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½Π΅; obs — ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ImageObserver, ΡΠ»Π΅Π΄ΡΡΠΈΠΉ Π·Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ this.ΠΠ΅ΡΠ²ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°Π΄Π°Π΅Ρ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΈ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° image, Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ getWidth (), getHeight{) ΠΊΠ»Π°ΡΡΠ° Image.ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ImageObserver, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡΠΎΠΌ Component, Π° Π·Π½Π°ΡΠΈΡ, ΠΈ ΠΊΠ»Π°ΡΡΠΎΠΌ Applet, ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ imageUpdate (), Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ±ΡΠΆΠ΄Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ.ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΠΏΠΏΠ»Π΅ΡΡ Π±ΡΠ»ΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Java. ΠΠ° ΠΏΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° Π³ΠΎΠ΄Π° ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ Java Π±ΡΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½Ρ ΡΡΡΡΡΠΈ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΠΈ ΠΊΡΠ°ΡΠΈΠ²ΡΡ Π°ΠΏΠΏΠ»Π΅ΡΠΎΠ², ΠΎΠΆΠΈΠ²ΠΈΠ²ΡΠΈΡ WWW. ΠΠ°ΡΡΠ° Π°ΠΏΠΏΠ»Π΅ΡΠΎΠ² ΡΠ°Π·Π±ΡΠΎΡΠ°Π½Π° ΠΏΠΎ Internet, Ρ ΠΎΡΠΎΡΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π°ΠΏΠΏΠ»Π΅ΡΠΎΠ² ΡΠΎΠ±ΡΠ°Π½Ρ Π² JDK Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ demoapplets.Π JDK Π²ΠΎΡΠ΅Π» ΡΠ΅Π»ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ java. applet, Π² ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΈΡΠΌΠ° SUN ΡΠΎΠ±ΠΈΡΠ°Π»Π°ΡΡ Π·Π°Π½ΠΎΡΠΈΡΡ ΠΊΠ»Π°ΡΡΡ, ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΈ ΡΠ»ΡΡΡΠ°ΡΡΠΈΠ΅ Π°ΠΏΠΏΠ»Π΅ΡΡ.Π‘ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠ΅ΡΠ΅ΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΠΏΠΏΠ»Π΅ΡΠΎΠ² ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΠ°Π»ΠΎ. Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ , ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ Π°ΠΏΠΏΠ»Π΅ΡΠ°ΠΌΠΈ, ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, Π±ΡΠ°ΡΠ·Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΡΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ «ΡΠΎΠ½ΠΊΠΈΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ» .Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° Java, Π·Π°Π³ΡΡΠΆΠ°ΡΡΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· Internet. Π’Π°ΠΊΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΅ΡΡΡ ΡΠ΅ΠΉΡΠ°Ρ Ρ Π²ΡΠ΅Ρ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΡΡ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°ΡΠ΅Π»Π΅ΠΉ.Π€ΠΈΡΠΌΠ° SUN Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅Ρ ΠΏΠ°ΠΊΠ΅Ρ java.applet. Π Π½Π΅ΠΌ ΡΠ°ΠΊ ΠΈ ΠΎΡΡΠ°Π»ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»Π°ΡΡ ΠΈ ΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Swing Π²ΠΎΡΠ΅Π» ΠΊΠ»Π°ΡΡ JApplet, ΡΠ°ΡΡΠΈΡΡΡΡΠΈΠΉ ΠΊΠ»Π°ΡΡ Applet. Π Π½Π΅ΠΌ Π΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠ΅Π½Ρ. ΠΠ½ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Swing. ΠΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² Π΅ΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Swing Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠΎΡΡΠ°Π²Π΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΊΠ»Π°ΡΡΡ Swing Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈΡ Π² jar-Π°ΡΡ ΠΈΠ² Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ Π°ΠΏΠΏΠ»Π΅ΡΠ°.1. Π£ΡΠ΅Π±Π½ΠΈΠΊ ΠΏΠΎ JBuilder2. Borland® JBuilder™ Developer’s GuideΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅// ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° CircleClockpackage clock;/** CircleClock. java** Created on ΠΌΠ°ΠΉ 2009 Π³.*/import java.awt.*;import java.awt.image.*;import java.awt.geom.*;import java.util.Calendar;/**** @author ΠΠΎΡΠΊΠ°ΡΠ΅Π²Π° ΠΠ°ΡΠΈΡ*/public class CircleClock extends java.applet.Applet implements Runnable {/****/private static final long serialVersionUID = 1L;private Needle hNeedle, mNeedle, sNeedle;private ClockDial dial;private int w, h;private BufferedImage bi;private Graphics2D big;private boolean stop = false;private Thread timer = null;private Color dialColor = Color. YELLOW;private Color hairLineColor = Color. GREEN;private Color hoursColor = Color. BLACK;private Color minutesColor = Color. BLUE;private Color secondsColor = Color. RED;/** ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π°ΠΏΠΏΠ»Π΅ΡΠ° */public void init () {try {//Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.Dimension dim = getSize ();w = dim. width;h = dim. height;//ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ²Π΅ΡΠ° ΡΡΡΠ΅Π»ΠΎΠΊ ΠΈ ΡΠΈΡΠ΅ΡΠ±Π»Π°ΡΠ°setColors ();//Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΡΡΠ΅Π»ΠΊΠΈint radius = 0;if (w < h)radius = w/2;elseradius = h/2;mNeedle = new Needle (radius, radius/5); //ΠΌΠΈΠ½ΡΡΠ½Π°Ρ ΡΡΡΠ΅Π»ΠΊΠ°hNeedle = new Needle (2d/3d*radius, radius/4); //ΡΠ°ΡΠΎΠ²Π°Ρ ΡΡΡΠ΅Π»ΠΊΠ°sNeedle = new Needle (radius, radius/10); //ΡΠ΅ΠΊΡΠ½Π΄Π½Π°Ρ ΡΡΡΠ΅Π»ΠΊΠ°//ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΈΡΠ΅ΡΠ±Π»Π°Ρdial = new ClockDial (radius*2, dialColor, hairLineColor);//Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ Graphics2D.//Π ΠΈΡΠΎΠ²Π°ΡΡ Π±ΡΠ΄Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π½Π΅ΠΌ, Π° ΡΠΊΡΠ°Π½ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΆΠ΅//Π³ΠΎΡΠΎΠ²ΡΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ (Ρ.Π½. Π΄Π²ΠΎΠΉΠ½Π°Ρ Π±ΡΡΠ΅ΡΠ΅Π·Π°ΡΠΈΡ).bi = (BufferedImage)createImage (w, h);big = bi. createGraphics ();big.setRenderingHint (RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);//Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠΎΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ update.timer = new Thread (this);timer.start ();}catch (Exception error) {System.out.println (error.getMessage ());}}/** ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΡ ΠΎΠΊΠ½Π° Π°ΠΏΠΏΠ»Π΅ΡΠ° */public void update (Graphics g) {try {//ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Graphics2DGraphics2D g2 = (Graphics2D)g;grawClock ();//Π ΠΈΡΡΠ΅ΠΌ Π³ΠΎΡΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΊΡΠ°Π½Π΅g2.drawImage (bi, 0, 0, this);big.setTransform (new AffineTransform ());}catch (Exception error) {System.out.println (error.getMessage ());}}private void grawClock () {//Π£Π·Π½Π°Π΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡCalendar curTime = Calendar. getInstance ();curTime.setTimeInMillis (System.currentTimeMillis ());double hour = curTime. get (Calendar.HOUR_OF_DAY);double min = curTime. get (Calendar.MINUTE);double sec = curTime. get (Calendar.SECOND);//ΠΡΠΈΡΠ°Π΅ΠΌ ΡΠΈΡΡΠ½ΠΎΠΊbig.setBackground (Color.WHITE);big.clearRect (0, 0, w, h);//Π ΠΈΡΡΠ΅ΠΌ ΡΠΈΡΠ΅ΡΠ±Π»Π°ΡPoint luCorner = new Point (0, 0);if (w > h){luCorner.x = (w — h)/2;luCorner.y = 0;}else{luCorner.x = 0;luCorner.y = (h — w)/2;}big.drawImage (dial.getClockDial (), null, luCorner. x, luCorner. y);//Π ΠΈΡΡΠ΅ΠΌ ΡΡΡΠ΅Π»ΠΊΠΈbig.setColor (hoursColor);AffineTransform hat = new AffineTransform ();hat.translate (w/2 — hNeedle. getRotationCenter ().x,h/2 — hNeedle. getRotationCenter ().y);/*Π Π°ΡΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ³ΠΎΠ» ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΠ΅Π»ΠΊΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Ρ Π½Π°12-ΡΠΈ ΡΠ°ΡΠΎΠ²ΠΎΠΌ ΡΠΈΡΠ΅ΡΠ±Π»Π°ΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ 30-ΡΠΈ Π³ΡΠ°Π΄ΡΡΠ°ΠΌ, Π° 1ΠΌΠΈΠ½ΡΡΠ° — 0.5 Π³ΡΠ°Π΄ΡΡΠ°. ΠΠ°ΡΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ Π² ΡΠ°Π΄ΠΈΠ°Π½Ρ. */if (hour >= 12)hour -= 12;double theta = (-90 + (30*hour + 0.5*min))*Math.PI/180;hat.rotate (theta, hNeedle. getRotationCenter ().x,hNeedle.getRotationCenter ().y);big.setTransform (hat);big.fill (hNeedle.getNeedle ());big.setColor (minutesColor);AffineTransform mat = new AffineTransform ();mat.translate (w/2 — mNeedle. getRotationCenter ().x,h/2 — mNeedle. getRotationCenter ().y);/*Π Π°ΡΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ³ΠΎΠ» ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° ΠΌΠΈΠ½ΡΡΠ½ΠΎΠΉ ΡΡΠ΅Π»ΠΊΠΈ. ΠΠ°ΠΆΠ΄Π°Ρ ΠΌΠΈΠ½ΡΡΠ° Π½Π°12-ΡΠΈ ΡΠ°ΡΠΎΠ²ΠΎΠΌ ΡΠΈΡΠ΅ΡΠ±Π»Π°ΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ 6-ΡΠΈ Π³ΡΠ°Π΄ΡΡΠ°ΠΌ, Π° 1ΡΠ΅ΠΊΡΠ½Π΄Π° — 0.1 Π³ΡΠ°Π΄ΡΡΠ°. ΠΠ°ΡΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ Π² ΡΠ°Π΄ΠΈΠ°Π½Ρ. */theta = (-90 + (6*min + 0.1*sec))*Math.PI/180;mat.rotate (theta, mNeedle. getRotationCenter ().x,mNeedle.getRotationCenter ().y);big.setTransform (mat);big.fill (mNeedle.getNeedle ());big.setColor (secondsColor);AffineTransform sat = new AffineTransform ();sat.translate (w/2 — sNeedle. getRotationCenter ().x,h/2 — sNeedle. getRotationCenter ().y);/*Π Π°ΡΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ³ΠΎΠ» ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° ΡΠ΅ΡΠ½Π΄Π½ΠΎΠΉ ΡΡΠ΅Π»ΠΊΠΈ. ΠΠ°ΠΆΠ΄Π°Ρ ΡΠ΅ΠΊΡΠ½Π΄Π° Π½Π°12-ΡΠΈ ΡΠ°ΡΠΎΠ²ΠΎΠΌ ΡΠΈΡΠ΅ΡΠ±Π»Π°ΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ 6-ΡΠΈ Π³ΡΠ°Π΄ΡΡΠ°ΠΌ.ΠΠ°ΡΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ Π² ΡΠ°Π΄ΠΈΠ°Π½Ρ. */theta = (-90 + (6*sec))*Math.PI/180;sat.rotate (theta, sNeedle. getRotationCenter ().x,sNeedle.getRotationCenter ().y);big.setTransform (sat);big.fill (sNeedle.getNeedle ());}//ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΈΡΠ°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π°ΠΏΠΏΠ»Π΅ΡΠ°, ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ//ΡΠ²Π΅ΡΠ° ΡΡΡΠ΅Π»ΠΎΠΊ ΠΈ ΡΠΈΡΠ΅ΡΠ±Π»Π°ΡΠ°.private void setColors () {try {/* ΠΠΎΠΎΠ±ΡΠ΅-ΡΠΎ, Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ²Π΅ΡΠ° Π½ΡΠΆΠ½ΠΎ ΡΠΈΡΠ»ΠΎ ΡΠΈΠΏΠ° int, Ρ. Π΅. 4 Π±Π°ΠΉΡΠ°, Π½ΠΎ int — ΡΡΠΎ ΡΠΈΡΠ»ΠΎ ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ (ΠΎΡ «-231» Π΄ΠΎ «2:31 — 1»), Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΈΡΠ»ΠΎ Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ΠΎΡ «0» Π΄ΠΎ «232», Ρ. Π΅. ΡΠ΅ ΠΆΠ΅ 4 Π±Π°ΠΉΡΠ°, Π½ΠΎ Π±Π΅Π· Π·Π½Π°ΠΊΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΈΡΠ»ΠΎ ΡΠΈΠΏΠ° Long, Π° Π·Π°ΡΠ΅ΠΌ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° intValue () ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΈΠΏ int.*/Long dc = new Long (Long.parseLong (getParameter («dialColor»), 16));Long hlc = new Long (Long.parseLong (getParameter («hairLineColor»), 16));Long hnc = new Long (Long.parseLong (getParameter («hoursNeedleColor»), 16));Long mnc = new Long (Long.parseLong (getParameter («minutesNeedleColor»), 16));Long snc = new Long (Long.parseLong (getParameter («secondsNeedleColor»), 16));dialColor = new Color (dc.intValue (), true);hairLineColor = new Color (hlc.intValue (), true);hoursColor = new Color (hnc.intValue (), true);minutesColor = new Color (mnc.intValue (), true);secondsColor = new Color (snc.intValue (), true);}catch (Exception error) {System.out.println (error.getMessage ());}}//ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ (timer).//ΠΠ½ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΡ ΠΎΠΊΠ½Π° Π°ΠΏΠΏΠ»Π΅ΡΠ° ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠ΅ΠΊΡΠ½Π΄Ρ.public void run () {while (!stop) {try {repaint ();Thread.currentThread ().sleep (1000);}catch (Exception err) {}}}//ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠΊΠΈΠ½ΡΠ» ΡΡΡΠ°Π½ΠΈΡΡ//Ρ Π°ΠΏΠΏΠ»Π΅ΡΠΎΠΌ. ΠΠ½ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΠΎΡΠΎΠΊ (timer) ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ,//ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΡ ΠΎΠΊΠ½Π° Π°ΠΏΠΏΠ»Π΅ΡΠ°.public void stop () {super.stop ();stop = true;}//ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ//Ρ Π°ΠΏΠΏΠ»Π΅ΡΠΎΠΌ. ΠΠ½ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΠ°ΡΡΠ°Π»Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ (timer).public void start () {super.start ();stop = false;if (timer == null) {timer = new Thread (this);timer.start ();}}//ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π·Π°ΠΊΡΡΡΠΈΠΈ ΡΡΡΠ°Π½ΠΈΡΡ Ρ Π°ΠΏΠΏΠ»Π΅ΡΠΎΠΌ.public void destroy () {super.destroy ();stop = true;//ΠΠ΄Π΅ΠΌ ΠΏΠΎΠΊΠ° ΠΏΠ°ΡΡΠ°Π»Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ (timer) Π·Π°Π²Π΅ΡΡΠΈΡ ΡΠ°Π±ΠΎΡΡ.Thread.currentThread ().yield ();}public String[][] getParameterInfo () {String[][] retValue = {{" dialColor", «hex», «alfa, red, green, blue (4 bytes, from 00 to FF)» },{" hairLineColor", «hex», «alfa, red, green, blue (4 bytes, from 00 to FF)» },{" hoursNeedleColor", «hex», «alfa, red, green, blue (4 bytes, from 00 to FF)» },{" minutesNeedleColor", «hex», «alfa, red, green, blue (4 bytes, from 00 to FF)» },{" secondsNeedleColor", «hex», «alfa, red, green, blue (4 bytes, from 00 to FF)» }};return retValue;}public String getAppletInfo () {String retValue;retValue = «Circle Clock» ;return retValue;}}// ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° ClockDialpackage clock;/** ClockDial. java** Created on ΠΌΠ°ΠΉ 2009 Π³.*/import java.awt.*;import java.awt.geom.*;import java.awt.image.*;/**** @author ΠΠΎΡΠΊΠ°ΡΠ΅Π²Π° ΠΠ°ΡΠΈΡ*/public class ClockDial {private double diam;private BufferedImage dial;private Color dialColor;private Color hairLineColor;/** Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ClockDial. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ* Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π΄ΠΈΠ°ΠΌΠ΅ΡΡ ΡΠΈΡΠ΅ΡΠ±Π»Π°ΡΠ°.** @param diam Π΄ΠΈΠ°ΠΌΠ΅ΡΡ ΡΠΈΡΠ΅ΡΠ±Π»Π°ΡΠ°.** @param dialColor ΡΠ²Π΅Ρ ΡΠΈΡΠ΅ΡΠ±Π»Π°ΡΠ°.** @param hairLineColor ΡΠ²Π΅Ρ ΡΠ΅ΡΡΠΎΡΠ΅ΠΊ Π½Π° ΡΠΈΡΠ΅ΡΠ±Π»Π°ΡΠ΅.** @exception IncorrectParametersException — Π΅ΡΠ»ΠΈ Π΄ΠΈΠ°ΠΌΠ΅ΡΡ ΠΌΠ΅Π½ΡΡΠ΅* ΠΈΠ»ΠΈ ΡΠ°Π²Π΅Π½ Π½ΡΠ»Ρ.*/public ClockDial (double diam, Color dialColor, Color hairLineColor)throws IncorrectParametersException {//ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π΄ΠΈΠ°ΠΌΠ΅ΡΡif (diam <= 0)throw new IncorrectParametersException ();this.diam = diam;this.dialColor = dialColor;this.hairLineColor = hairLineColor;//ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΈΡΡΠ½ΠΎΠΊdial = new BufferedImage ((int)diam, (int)diam,BufferedImage.TYPE_INT_ARGB);//ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ΅ΡΡΠΎΡΠΊΡ Π½Π° ΡΠΈΡΠ΅ΡΠ±Π»Π°ΡΠ΅Rectangle2D.Double r = new Rectangle2D. Double (-diam/40, -diam/60, diam/20, diam/30);AffineTransform at = new AffineTransform ();//ΡΠΌΠ΅ΡΠ°Π΅ΠΌ Π½Π°ΡΠ°Π»ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π² ΡΠ΅Π½ΡΡ ΡΠΈΡΠ΅ΡΠ±Π»Π°ΡΠ°at.translate (diam/2, diam/2);//ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅AffineTransform prev = (AffineTransform)at.clone ();//ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡGraphics2D g2 = dial. createGraphics ();//Π·Π°ΠΊΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ Π²ΡΠ΅ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌg2.setBackground (dialColor);g2.clearRect (0, 0, (int)diam, (int)diam);//ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ²Π΅Ρ ΡΠ΅ΡΡΠΎΡΠ΅ΠΊg2.setColor (hairLineColor);//ΡΠΈΡΡΠ΅ΠΌ 12 ΡΡΡΠΈΡ ΠΎΠ²for (int i = 0; i < 12; i++){//ΡΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΠ΅Π½ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΊ ΠΊΡΠ°Ρ ΡΠΈΡΠ΅ΡΠ±Π»Π°ΡΠ° (ΡΡΠ΄Π°,//Π³Π΄Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ ΡΡΡΠΈΡ )at.translate (-(diam/2 — r. width), 0);//ΠΏΠΎΠ²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΡΡΡΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π½ΡΡΠ° ΡΠΈΡΠ΅ΡΠ±Π»Π°ΡΠ°at.rotate (Math.toRadians (30*i), diam/2 — r. width, 0);//ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅g2.setTransform (at);//ΡΠΈΡΡΠ΅ΠΌ ΡΡΡΠΈΡ g2.fill®;//Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅at.setTransform (prev);}}/*** ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ΅ΡΠ±Π»Π°ΡΠ°.** @return BufferedImage ΡΠΈΡΡΠ½ΠΎΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ΅ΡΠ±Π»Π°ΡΠ°*/public BufferedImage getClockDial () {return dial;}}// ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° IncorrectParametersExceptionpackage clock;/** IncorrectParameters. java** Created on ΠΌΠ°ΠΉ 2009 Π³.* *//**** @author ΠΠΎΡΠΊΠ°ΡΠ΅Π²Π° ΠΠ°ΡΠΈΡ*/public class IncorrectParametersException extends java.lang.Exception {/****/private static final long serialVersionUID = 1L;/*** Creates a new instance of IncorrectParameterswithout detail message.*/public IncorrectParametersException () {this («IncorrectParameters»);}/*** Constructs an instance of IncorrectParameterswith the specified detail message.* @param msg the detail message.*/public IncorrectParametersException (String msg) {super (msg);}}// ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° Needlepackage clock;/** Needle. java** Created on ΠΌΠ°ΠΉ 2009 Π³.*/import java.awt.*;import java.awt.geom.*;/*** ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠ΅Π»ΠΊΠΈ ΡΠ°ΡΠΎΠ²** @author ΠΠΎΡΠΊΠ°ΡΠ΅Π²Π° ΠΠ°ΡΠΈΡ*/public class Needle {private GeneralPath shape;private double length, width;/** Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠ° Needle.* ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π΄Π»ΠΈΠ½Ρ ΠΈ ΡΠΈΡΠΈΠ½Ρ ΡΡΡΠ΅Π»ΠΊΠΈ.* ΠΠ»ΠΈΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΡΠΈΠ½Ρ.** @param length Π΄Π»ΠΈΠ½Π° ΡΡΡΠ΅Π»ΠΊΠΈ* @param width Π΄Π»ΠΈΠ½Π° ΡΡΡΠ΅Π»ΠΊΠΈ** @exception IncorrectParametersException — Π΅ΡΠ»ΠΈ Π΄Π»ΠΈΠ½Π° ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ»ΠΈ* ΡΠ°Π²Π½Π° Π½ΡΠ»Ρ, Π΅ΡΠ»ΠΈ ΡΠΈΡΠΈΠ½Π° ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½Π° Π½ΡΠ»Ρ, Π΅ΡΠ»ΠΈ Π΄Π»ΠΈΠ½Π°* ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½Π° ΡΠΈΡΠΈΠ½Π΅.*/public Needle (double length, double width)throws IncorrectParametersException/*** ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠ΅Π»ΠΊΡ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΈΠΏΠ° Shape.* @return Shape — ΡΠΈΠ³ΡΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΡΠ΅Π»ΠΊΠΈ*/public Shape getNeedle () {return shape;}/*** ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π½ΡΡ Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΡΠ΅Π»ΠΊΠΈ (ΡΠΎΡΠΊΡ, Π²ΠΎΠΊΡΡΠ³ ΠΊΠΎΡΠΎΡΠΎΠΉ* ΡΡΡΠ΅Π»ΠΊΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ°ΡΠ°ΡΡΡΡ)* @return Point2D. Double — ΡΠΎΡΠΊΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠ΅Π½ΡΡΠ° Π²ΡΠ°ΡΠ΅Π½ΠΈΡ* ΡΡΡΠ΅Π»ΠΊΠΈ*/public Point2D. Double getRotationCenter () {Point2D.Double rc = new Point2D. Double ();rc.x = rc. y = width/2;return rc;}}ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²Π΅ΡΡ ΡΠ΅ΠΊΡΡ Π‘ΡΠΎΠΈΠΌΠΎΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π‘ΡΠΎΠΈΠΌΠΎΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΠ°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΎΡΠΌΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠΎΠΉ