Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ
ΠΡΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΡΠΎΠ²Π½Ρ ΠΊΠ»Π°ΡΡΠ° ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΡ. ΠΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡΡ, ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌΡ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ. Π§ΡΠΎ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ? Π ΡΠΎ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ, ΡΠΎ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ²ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΠΌΠ΅Π½ΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅: ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΊΠ»Π°ΡΡ Car Ρ Π½Π΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ:public class Car {
int km;
}
Π’ΠΎΠ³Π΄Π° Π² main:
Car orangeCar = new Car();
orangeCar.km = 100;
Car blueCar = new Car();
blueCar.km = 85;
System.out.println("Orange car - " + orangeCar.km);
System.out.println("Blue car - " + blueCar.km);
ΠΡΠ²ΠΎΠ΄ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ:
Orange car - 100
Blue car - 85
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ, Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ²ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΡ Π° Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ, ΡΠΎ ΡΡΠΎ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β ΠΎΠ΄Π½ΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ
:
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Car ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ:
public class Car {
static int km;
}
Π’ΠΎΠ³Π΄Π° ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠ΄ Π² main Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π°Π²Π°ΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ:
Orange car - 85
Blue car - 85
ΠΠ΅Π΄Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Ρ Π½Π°Ρ ΠΎΠ΄Π½Π° Π½Π° Π²ΡΠ΅Ρ
, ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΌΡ ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π΅.
Π ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Π½Π΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ β orangeCar.km, Π° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ° β Car.km
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π±Π»ΠΎΠΊ
ΠΡΡΡ Π΄Π²Π° Π±Π»ΠΎΠΊΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ β ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ. ΠΠ»ΠΎΠΊ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΡΠ»ΠΈ Π±Π»ΠΎΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ, ΡΠΎ ΠΈΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π΅ΡΠ»ΠΈ ΠΆΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΈΠΌ Π·Π°Π΄Π°ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ (ΡΠΎ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΠ°). ΠΡΠΈΠΌΠ΅Ρ ΠΊΠ»Π°ΡΡΠ° ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π±Π»ΠΎΠΊΠΎΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ:public class Car {
static int km;
static {
km = 150;
}
}
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΎΠ±ΡΡΠ½ΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ ΠΊ ΠΊΠ»Π°ΡΡΡ, Π° Π½Π΅ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠ°ΠΆΠ½ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ/ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ Π½Π°Ρ Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΊΠΈΠΌ ΡΡΡΡΡΠΈΠΊΠΎΠΌ, Π²Π΅Π΄ΡΡΠΈΠΌ ΡΡΠ΅Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π°:public class Counter {
static int count;
public static void invokeCounter() {
count++;
System.out.println("Π’Π΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΡΡΠΈΠΊΠ° - " + count);
}
}
ΠΡΠ·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ Π² main:
Counter.invokeCounter();
Counter.invokeCounter();
Counter.invokeCounter();
Π ΠΏΠΎΠ»ΡΡΠΈΠΌ Π²ΡΠ²ΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ:
Π’Π΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΡΡΠΈΠΊΠ° - 1
Π’Π΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΡΡΠΈΠΊΠ° - 2
Π’Π΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΡΡΠΈΠΊΠ° - 3
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ Π² Java
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΊΠ»Π°ΡΡ. ΠΠΏΡΡΡ ΠΆΠ΅, ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ Π²Π½Π΅ΡΠ½Π΅ΠΌΡ ΠΊΠ»Π°ΡΡΡ, ΠΈ Π΅ΡΠ»ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ, ΡΠΎ ΡΡΠΎΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½. ΠΡΠΈ ΡΡΠΎΠΌ Π΄Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ ΠΎΡ Π»ΡΠ±ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠΎ ΡΡΡΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π»ΡΠ±ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠΎΠ·Π΄Π°Π²ΡΠΈΠΉ Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΠΎΠ±ΡΡΠ½ΡΠΉ Π½Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ, Π²Π΅Π΄Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½ Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ»Π°ΡΡ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π΄Π»Ρ Π½Π°Ρ ΡΡΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ Π½Π΅Π³ΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠΈΠΌΠ΅Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°:public class Vehicle {
public static class Car {
public int km;
}
}
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ:
Vehicle.Car car = new Vehicle.Car();
car.km = 90;
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²/ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
/ΠΊΠ»Π°ΡΡΠ° Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ»Ρ private
Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ. ΠΠΎΠ»Ρ protected
Π΄ΠΎΡΡΡΠΏΠ½Ρ Π²ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ Π²Π½ΡΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° (package), Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ-Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ°ΠΌ Π²Π½Π΅ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ ΡΠΎ ΡΡΠ°ΡΡΠ΅ΠΉ βprivate vs protected vs publicβ.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ increment()
Π² ΠΊΠ»Π°ΡΡΠ΅ Counter
, Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΡΡΠΈΠΊΠ° count
. ΠΠ»Ρ Π²ΡΠ·ΠΎΠ²Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π° Counter.increment()
. ΠΠ΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Counter
Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΏΠΎΠ»Ρ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΡΠΎ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΈ ΠΠ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ (ΡΠ»Π΅Π½Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°).
ΠΡΠ΅ ΡΠ°Π· Π½Π°ΠΏΠΎΠΌΠ½Ρ, ΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° Π½Π°ΠΏΡΡΠΌΡΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ ΠΊΠ»Π°ΡΡΡ, Π° Π½Π΅ Π΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ. Π’ΠΎ Π΅ΡΡΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ count
Π±ΡΠ΄Π΅Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΠΏΠ° Counter
. ΠΠ°Π»Π΅Π΅ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡΡΠΈΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° static Π² Java, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ½ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π§ΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ΅ Static Π² Java
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ°ΡΠ½ΡΠΌ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ .ΠΡ ΠΠ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΠ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ»Π΅Π½Π°ΠΌ ΠΊΠ»Π°ΡΡΠ°, Π²Π½ΡΡΡΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΠΊΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠ°. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°:
public class Counter{ private int count; public static void main(String args[]){ System.out.println(count); //compile time error }}
ΠΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΠΌΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌΠΈ Java, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΎΠ΄
main
ΡΡΠ°ΡΠΈΡΠ½ΡΠΉ, Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρcount
Π½Π΅Ρ, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠ΅ΡΠΎΠ΄println
, Π²Π½ΡΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°main
Π²ΡΠ±ΡΠΎΡΠΈΡ βCompile time errorβ.Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΠ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½Ρ (Thread-safe) Π² Java. ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΡΡ ΠΏΡΠΈΡΠΈΠ½ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ ΠΌΡΠ»ΡΡΠΈΠΏΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π£ΡΠΈΡΡΠ²Π°Ρ ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΠΊΠΎΠΏΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡΠΎ ΡΠ°ΠΊΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² Π·Π°ΡΠΈΡΠ΅ β Β«Π·Π°Π»ΠΎΡΠΈΠ²Π°Π½ΠΈΠΈΒ» ΠΊΠ»Π°ΡΡΠΎΠΌ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ (synchronized), Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Β«ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π³ΠΎΠ½ΠΊΠΈΒ» (race condition).
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π² ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ, Ρ.ΠΊ. ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΊΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΈΠΏ ΠΊΠ»Π°ΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠΏΠΈΡΠ°Π½Ρ. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ°ΠΊ Π½Π΅Π»ΡΠ·Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²-ΡΠ°Π±ΡΠΈΠΊ (
factory
), ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²-ΡΡΠΈΠ»ΠΈΡ (utility
). ΠΠ»Π°ΡΡjava.lang.Math
β Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΡΠ°ΡΠΈΡΠ½Ρ, ΠΏΠΎ ΡΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΊΠ»Π°ΡΡΡ-ΡΡΠΈΠ»ΠΈΡΡ Π² Java ΡΠΈΠ½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ (final
).ΠΡΡΠ³ΠΈΠΌ Π²Π°ΠΆΠ½ΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π²Ρ ΠΠ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ (
Override
) ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΡΠ»ΠΈ Π²Ρ ΠΎΠ±ΡΡΠ²ΠΈΡΠ΅ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄ Π² ΠΊΠ»Π°ΡΡΠ΅-Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ΅ (subclass
), Ρ.Π΅. ΠΌΠ΅ΡΠΎΠ΄ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ ΡΠΈΠ³Π½Π°ΡΡΡΠΎΠΉ, Π²Ρ Π»ΠΈΡΡ Β«ΡΠΏΡΡΡΠ΅ΡΠ΅Β» ΠΌΠ΅ΡΠΎΠ΄ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° (superclass
) Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ. ΠΡΠΎ ΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠΊΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² (hiding methods
). ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΠΊΠ°ΠΊ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ, ΡΠ°ΠΊ ΠΈ Π² Π΄ΠΎΡΠ΅ΡΠ½Π΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅, Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΠΈΠΏΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π΅ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:class Vehicle{ public static void kmToMiles(int km){ System.out.println("ΠΠ½ΡΡΡΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°/ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°"); } } class Car extends Vehicle{ public static void kmToMiles(int km){ System.out.println("ΠΠ½ΡΡΡΠΈ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°/ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° "); } } public class Demo{ public static void main(String args[]){ Vehicle v = new Car(); v.kmToMiles(10); }}
ΠΡΠ²ΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ:
ΠΠ½ΡΡΡΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°/ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°
ΠΠΎΠ΄ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ: Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ
Car
, Π²ΡΠ·Π²Π°Π½ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ°Vehicle
, Ρ.ΠΊ. ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π Π·Π°ΠΌΠ΅ΡΡΡΠ΅, ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ!ΠΠ±ΡΡΠ²ΠΈΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΠΊΠ»Π°ΡΡ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠΎΠ² Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ. Π’Π°ΠΊΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ ΠΊΠ°ΠΊ Β«Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠ»Π°ΡΡΡΒ» (
nested static class
). ΠΠ½ΠΈ Π±ΡΠ²Π°ΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ»ΡΡΡΠ΅Π½Π½ΡΡ ΡΠ²ΡΠ·Π΅ΠΉ. Π―ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° βHashMap.Entry
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π²Π½ΡΡΡΠΈHashMap
. Π‘ΡΠΎΠΈΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΊΠ»Π°ΡΡ, Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ .class. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠ±ΡΡΠ²ΠΈΠ»ΠΈ ΠΏΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π² Π²Π°ΡΠ΅ΠΌ Π³Π»Π°Π²Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅, Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ 6 ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .class. ΠΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡΠ° (Comparator
), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΡ (AgeComparator
) Π² ΠΊΠ»Π°ΡΡΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ (Employee
).ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ static ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ Π² ΡΡΠ°ΡΠΈΡΠ½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅, Π±ΠΎΠ»Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ ΠΊΠ°ΠΊ Β«Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π±Π»ΠΎΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈΒ» (
Static initializer block
), ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΎΠ±ΡΡΠ²ΠΈΡΠ΅ ΡΠ°ΠΊΠΎΠΉ Π±Π»ΠΎΠΊ, ΡΠΎ Java ΡΠΎΠ±Π΅ΡΡΡ Π²ΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ Π² ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΈΡΠΎΠΊ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ Π΅Π³ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ»Π°ΡΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΠ°ΡΠΈΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ ΠΠ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ±ΡΠΎΡΠΈΡΡ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ΅Π½Π½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ±ΡΠΎΡΠΈΡΡ Π½Π΅ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ΅Π½Π½ΡΠ΅. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ Β«Exception Initializer ErrorΒ». ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅, Π»ΡΠ±ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΡΠ΅Π΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ, Π±ΡΠ΄Π΅Ρ Π·Π°Π²ΡΡΠ½ΡΡΠΎ Java Π² ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΠΌΠ°Ρ ΡΠ°ΡΡΠ°Ρ ΠΏΡΠΈΡΠΈΠ½Π° ΠΎΡΠΈΠ±ΠΊΠΈ Β«No Class Def Found ErrorΒ», Ρ.ΠΊ. ΠΊΠ»Π°ΡΡ Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π½Π΅ΠΌΡ.ΠΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°ΡΡ, ΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΈΠ»ΠΈ Π½Π΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² Java, Ρ.ΠΊ. ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ Π½Π° Π½ΠΈΡ . ΠΡΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ, ΠΎΠ±ΡΡΠ²Π»ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ. Π ΡΡΠΎΠΌ Π΅ΡΡΡ ΡΠΌΡΡΠ», ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ-Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ°ΠΌΠΈ. ΠΠ΅ΡΠΎΠ΄Ρ-ΡΠ°Π±ΡΠΈΠΊΠΈ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ-ΡΡΠΈΠ»ΠΈΡΡ Ρ ΠΎΡΠΎΡΠΈΠ΅ ΠΎΠ±ΡΠ°Π·ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° static. ΠΠΆΠΎΡΡΠ° ΠΠ»ΠΎΡ Π²ΡΠ΄Π΅Π»ΠΈΠ» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°-ΡΠ°Π±ΡΠΈΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ, Π² ΠΊΠ½ΠΈΠ³Π΅ Β«Effective JavaΒ», ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ Π΄Π»Ρ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°.
ΠΠ°ΠΆΠ½ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ»Π°ΡΡΠ° Π² ΠΏΠ°ΠΌΡΡΡ. ΠΠΎΡΡΠ΄ΠΎΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ·, Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΎΠ½ΠΈ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Java ΠΊΠ»Π°ΡΡΠ°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ Π½Π° ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΠΌΠ°Π½Π΅Ρ, ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ°ΡΡΠ΅ΡΠ½Π°
Singleton
. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊEnum
ΠΊΠ°ΠΊSingleton
, ΠΏΠΎ ΡΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ, ΡΠΎ Π΄Π»Ρ Π²Π°Ρ Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠ°Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π°. ΠΠΎ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠ΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ Β«Π»Π΅Π½ΠΈΠ²Π°ΡΒ» ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ Π΅ΡΡ ΠΠ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΎΠ± ΡΡΠΎΠΌ Β«ΠΏΠΎΠΏΡΠΎΡΠΈΡΒ». ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ΅ΡΡΡΡΠΎΡΠΌΠΊΠΈΠΉ ΠΈΠ»ΠΈ ΡΠ΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΡΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΅Π³ΠΎ Π² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ ΡΡΠ³ΡΠ°Π΅Ρ Π½Π΅ Π² Π²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·Ρ.ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ
transient
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ Π½Π΅ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΡΡΡΡ. ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π»ΡΠ±ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΠ»Π΅, ΡΠΎ ΠΏΠΎΡΠ»Π΅ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ΅ (ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΠΎΠ»Π΅ΠΌ Π±ΡΠ»Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΈΠΏΠ°int
, ΡΠΎ Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½ΠΎ Π½ΡΠ»Ρ, Π΅ΡΠ»ΠΈ ΡΠΈΠΏΠ°float
β 0.0, Π΅ΡΠ»ΠΈ ΡΠΈΠΏΠ°Object
βnull
. Π§Π΅ΡΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΊΠ°ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡΡ ΠΏΠΎ Java. ΠΠ΅ Ρ ΡΠ°Π½ΠΈΡΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ± ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ Π² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΠ»Π΅!Π Π½Π°ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠΊ, ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ
static import
. ΠΠ°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌimport
, Π½ΠΎ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π½Π΅Π³ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π²ΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΊ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΠΎΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² ΡΡΠΎΠΌ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΠ΅, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ»Π΅ΠΉ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ°. ΠΠ°Π½Π½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π² Java Π²Π΅ΡΡΠΈΠΈ 1.5, ΠΈ ΠΏΡΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ»ΡΡΡΠ°Π΅Ρ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ΄Π°. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ Π΄Π°Π½Π½Π°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π² ΡΠ΅ΡΡΠ°Ρ JUnit, Ρ.ΠΊ. ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ΅ΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡstatic import
Π΄Π»Ρ assert ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅ΡassertEquals()
ΠΈ Π΄Π»Ρ ΠΈΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΡ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΠΎΠ². ΠΡΠ»ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ β Π΄ΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ Π·Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ.