ΠΠ°ΠΏΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π΅ Π² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ Π΄ΠΎ Π΅Π³ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ.
int y=x;
int x=3;
ΠΠ΄Π½Π°ΠΊΠΎ, Π² ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΠΈ Π½ΠΈΠΆΠ΅ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
class Point {
int getX() {return x;}
int y=getX();
int x=3;
}
public static void main (String s[]) {
Point p=new Point();
System.out.println(p.x+", "+p.y);
}
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ:
3,0
ΠΠ°Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ΅Π½, Π½ΠΎ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π΅Π³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΊΠ»Π°ΡΡΠ° ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:
* Π΄Π»Ρ ΡΠΈΡΠ»ΠΎΠ²ΡΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ² β 0 ;
* Π΄Π»Ρ Π±ΡΠ»Π΅Π²ΡΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ° β false ;
* Π΄Π»Ρ ΡΡΡΠ»ΠΎΡΠ½ΡΡ β null.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ y Π±ΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄Π° getX(), ΠΊΠΎΡΠΎΡΡΠΉ Π²Π΅ΡΠ½ΡΠ» Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ x, ΡΠΎ Π΅ΡΡΡ 0. ΠΠ°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ x ΠΏΠΎΠ»ΡΡΠΈΠ»Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 3.
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈ ΡΠ΅Π»Π° ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ·:
* ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² (Π΄ΠΎΡΡΡΠΏΠ° Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅);
* ΡΠΈΠΏΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° void ;
* ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ;
* ΡΠΏΠΈΡΠΊΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΊΡΡΠ³Π»ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ (Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π±ΡΡΡ);
* ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ throws -Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ². ΠΠ»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ°. Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ final, ΠΊΠΎΡΠΎΡΡΠΉ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π² Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ°Ρ . ΠΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ final -ΠΊΠ»Π°ΡΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΅ private - ΠΌΠ΅ΡΠΎΠ΄Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠ²Π»ΡΡΡΡΡ final.
Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ native. ΠΠ΅ΡΠΎΠ΄, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΉ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Java. ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π΄ΡΡΠ³ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ (C/C++, Fortran ΠΈ Ρ.Π΄.) ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΡΠΈΡΡΠ΅ΠΌΡ Π² Π²ΠΈΠ΄Π΅ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΠΎΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, DLL Π΄Π»Ρ Windows). Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ JNI (Java Native Interface), ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ°Ρ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ native - ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
Π’Π°ΠΊΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π»Ρ Java Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΡ ΡΠ·ΡΠΊΠ°Ρ . ΠΡ Π±ΡΠ»ΠΎ Π±Ρ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΊΠΎ ΠΈ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ Π½Π° Java, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΠΈΡ Π² ΡΠ°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΎΠ½ΠΈ Π΅ΡΡΡ. ΠΠ΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, ΠΏΡΠΈ ΡΡΠΎΠΌ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡ ΡΠ΅Π»ΡΠΉ ΡΡΠ΄ ΡΠ²ΠΎΠΈΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ², ΡΠ°ΠΊΠΈΡ , ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ JNI ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΡΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΠΈΠΌΠ΅Π½Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡ Π²ΠΎ Π²Π½Π΅ΡΠ½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ (ΠΎΠ½Π° ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΡ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΊΠ»Π°ΡΡΠ° ΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ native - ΠΌΠ΅ΡΠΎΠ΄Π° ), Π° ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΌΠ΅Π½ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΎΡΠ΅Π½Ρ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ, ΡΠ°ΡΡΠΎ ΠΏΠΈΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ-"ΠΎΠ±Π΅ΡΡΠΊΠΈ", ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Java-ΠΊΠ»Π°ΡΡΡ ΡΠ΅ΡΠ΅Π· JNI, Π° ΠΎΠ½ΠΈ ΡΠ°ΠΌΠΈ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ΅Π»Π΅Π²ΡΠΌ ΠΌΠΎΠ΄ΡΠ»ΡΠΌ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ synchronized, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ Π² Π»Π΅ΠΊΡΠΈΠΈ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ΅ΠΉ ΠΏΠΎΡΠΎΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠΌΡ (ΠΏΡΠΎΡΡΠΎΠ΅ ΠΈΠ»ΠΈ ΡΠΎΡΡΠ°Π²Π½ΠΎΠ΅) ΡΠΈΠΏΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ; ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΉ, ΡΠ°ΠΊ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠΈΠΏ. ΠΡΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ void.
ΠΠ°ΡΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΈΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π°. Π£ΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΡΠΎΡΡΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Π°. Π‘ΠΎΡΡΠ°Π²Π½ΠΎΠ΅ ΠΈΠΌΡ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠ±Π»Π°ΡΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π»Π° ΠΊΠ»Π°ΡΡΠ°.
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡΡΡ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΈΠΏ, Π·Π°ΡΠ΅ΠΌ ΠΈΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π΄Π΅ΡΡ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π΄Π²Π° ΠΈΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°:
// void calc (double x, y);
- ΠΎΡΠΈΠ±ΠΊΠ°! void calc (double x, double y);
ΠΡΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΡΡΡΡΠ΅ ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ. ΠΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅, Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΠΌΠΈ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π²Π²Π΅ΡΡΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ final ΠΏΠ΅ΡΠ΅Π΄ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ ΡΠΈΠΏΠ°. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠ΅Π»Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° (ΡΠΎ Π΅ΡΡΡ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°).
public void process(int x, final double y) {
x=x*x+Math.sqrt(x);
// y=Math.sin(x); - ΡΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ Π½Π΅Π»ΡΠ·Ρ,
// Ρ.ΠΊ. y - final!
}
Π ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π°, ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠΎΠΉ Π»Π΅ΠΊΡΠΈΠΈ.
ΠΠ°ΠΆΠ½ΡΠΌ ΠΏΠΎΠ½ΡΡΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ³Π½Π°ΡΡΡΠ° (signature) ΠΌΠ΅ΡΠΎΠ΄Π°. Π‘ΠΈΠ³Π½Π°ΡΡΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ Π΅Π³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ (ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ, ΡΠΈΠΏΠΎΠΌ, ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ). ΠΡΠ»ΠΈ Π΄Π»Ρ ΠΏΠΎΠ»Π΅ΠΉ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½, ΡΠΎ Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π² ΠΊΠ»Π°ΡΡΠ΅ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΡΠΈΠ³Π½Π°ΡΡΡΠ°ΠΌΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
class Point {
void get() {}
void get(int x) {}
void get(int x, double y) {}
void get(double x, int y) {}
}
Π’Π°ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ:
void get() {}
int get() {}
void get(int x) {}
void get(int y) {}
public int get() {}
private int get() {}
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠΈΠΏΠΎΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠ³Π½Π°ΡΡΡΡ. Π‘ΡΠ°Π»ΠΎ Π±ΡΡΡ, ΡΡΠΎ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π° Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΡΠΈΠ³Π½Π°ΡΡΡΠ°ΠΌΠΈ ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΡΠ΅Π»Π° ΠΊΠ»Π°ΡΡΠ°. ΠΠΎΠΆΠ½ΠΎ ΡΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π» Π±Ρ Π½Π΅ΡΠ°Π·ΡΠ΅ΡΠΈΠΌΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, Π΅ΡΠ»ΠΈ Π±Ρ Π±ΡΠ» Π΄ΠΎΠΏΡΡΡΠΈΠΌ:
// ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
class Test {
int get() {
return 5;
}
Point get() {
return new Point(3,5);
}
void print(int x) {
System.out.println("it's int! "+x);
}
void print(Point p) {
System.out.println("it's Point! "+p.x+ ", "+p.y);
}
public static void main (String s[]) {
Test t = new Test();
t.print(t.get());
// ΠΠ²ΡΡΠΌΡΡΠ»Π΅Π½Π½ΠΎΡΡΡ!
}
}
Π ΠΊΠ»Π°ΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Π½Π°Ρ ΠΏΠ°ΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² get() Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΡΠΈΠ³Π½Π°ΡΡΡΠ°ΠΌΠΈ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ main, Π³Π΄Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π° print() (Ρ Π½ΠΈΡ ΡΠ°Π·Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, Π° Π·Π½Π°ΡΠΈΡ, ΠΈ ΡΠΈΠ³Π½Π°ΡΡΡΡ, ΡΠΎ Π΅ΡΡΡ ΡΡΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ), ΠΈ ΡΡΠΎΠ±Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½, Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΡΠΎΡΠ½ΡΠΉ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° get(), ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΎ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΡΠΈΠ³Π½Π°ΡΡΡΡ. ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡΡΡ Π΅Π³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΠΏΡΠΈΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΈΡ ΡΠΈΠΏ. ΠΠ°ΠΊ ΡΠ°Π· ΡΡΠΈ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΈ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠΈΠ³Π½Π°ΡΡΡΡ, ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π΅Π΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½.
Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΠΎΡΠ°Ρ ΠΏΠ°ΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠ°Π·Π»ΠΈΡΠ°Π΅ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ Π²Ρ ΠΎΠ΄ΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠ³Π½Π°ΡΡΡΡ ΠΈ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π΄Π²ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½.
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΡΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ° ΡΠ°Π·Π»ΠΈΡΠ°Π΅ΡΡΡ Π»ΠΈΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ°, ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΌΠ΅ΡΠΎΠ΄Π° throws -Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ Π² Java ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ Π»Π΅ΠΊΡΠΈΠΈ.
ΠΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°:
public final java.awt.Point
createPositivePoint(int x, int y)
throws IllegalArgumentException {
return (x>0 && y>0) ?
new Point(x, y) : null;
}
ΠΠ°Π»Π΅Π΅, ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ΅Π»ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΡΡΡΠΌ ΠΈ ΡΠΎΠ³Π΄Π° Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ "ΡΠΎΡΠΊΠ° Ρ Π·Π°ΠΏΡΡΠΎΠΉ". Native - ΠΌΠ΅ΡΠΎΠ΄Ρ Π²ΡΠ΅Π³Π΄Π° ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΡΡΠΎΠ΅ ΡΠ΅Π»ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°ΡΡΠΎΡΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Π΄ΡΡΠ³ΠΎΠΌ ΡΠ·ΡΠΊΠ΅.
ΠΠ±ΡΡΠ½ΡΠ΅ ΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΠΏΡΡΡΠΎΠ΅ ΡΠ΅Π»ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠΈΠ³ΡΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ , ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π² ΡΡΠΎΠΉ ΠΈ Π΄ΡΡΠ³ΠΈΡ Π»Π΅ΠΊΡΠΈΡΡ . ΠΡΠ»ΠΈ ΡΠ΅ΠΊΡΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΡΠ΅Π»ΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΏΠ°ΡΠΎΠΉ ΠΏΡΡΡΡΡ ΡΠΈΠ³ΡΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ:
public void empty() {}
ΠΡΠ»ΠΈ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΊΠ°Π·Π°Π½ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π° Π½Π΅ void, ΡΠΎ Π² ΡΠ΅Π»Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ return -Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΈ ΡΡΠΎΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ Π°Π½Π°Π»ΠΈΠ· ΡΡΡΡΠΊΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΠΏΡΠΈ Π»ΡΠ±ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°Ρ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌ:
// ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
public int get() {
if (condition) {
return 5;
}
}
ΠΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Ρ ΠΎΡΡ ΡΠ΅Π»ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ return -Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ ΠΏΡΠΈ Π»ΡΠ±ΠΎΠΌ ΡΠ°Π·Π²ΠΈΡΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΎ. Π Π²ΠΎΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π΅ΡΠ½ΡΠΌ:
public int get() {
if (condition) {
return 5;
}
else {
return 3;
}
}
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠ»ΠΎΠ²Π° return, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎ ΠΏΠΎ ΡΠΈΠΏΡ Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ (ΡΡΠΎ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π² Π»Π΅ΠΊΡΠΈΠΈ 7).
Π ΠΌΠ΅ΡΠΎΠ΄Π΅ Π±Π΅Π· Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΡΠΊΠ°Π·Π°Π½ΠΎ void ) ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ return Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ Π² ΡΡΠΎΠΉ ΡΠΎΡΠΊΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΎ:
public void calculate(int x, int y) {
if (x<=0 || y<=0) {
return;
// Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅