Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java

БтатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

1. БтатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

ΠšΡ€ΠΎΠΌΠ΅ статичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π² классах ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

ΠžΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ привязаны ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ (экзСмплярам) класса ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ класса (Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊ статичСским ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ). БтатичСскиС ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ привязаны ΠΊ статичСскому ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ класса ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ статичСским ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈ/ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ статичСским ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ класса.

Π’Ρ‹Π·Π²Π°Ρ‚ΡŒ нСстатичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρƒ класса нСльзя!

А Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄, достаточно Ρ‡Ρ‚ΠΎΠ±Ρ‹ просто сущСствовал статичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ всСгда сущСствуСт послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ класса Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ). ИмСнно поэтому ΠΌΠ΅Ρ‚ΠΎΠ΄ main() β€” статичСский. Он привязан ΠΊ статичСскому ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ класса, для Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ статичСским, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово static. ΠžΠ±Ρ‰ΠΈΠΉ Π²ΠΈΠ΄ этой конструкции Ρ‚Π°ΠΊΠΎΠΉ:

ΠœΠ΅Ρ‚ΠΎΠ΄ main вызываСтся Java-машиной ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π²ΠΈΠ΄Π°: Solution.main() ;

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ класса, Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя класса ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ статичСского ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. ΠžΠ±Ρ‰ΠΈΠΉ Π²ΠΈΠ΄ этой конструкции Ρ‚Π°ΠΊΠΎΠΉ:

ΠšΠΎΠ΄Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄

2. БтатичСскиС vs ΠžΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Π§Π΅ΠΌ ΠΆΠ΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ…?

ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ привязку ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ β€” экзСмпляру класса, статичСский ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‚Π°ΠΊΠΎΠΉ привязки Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚. ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π² своСм экзСмплярС класса, статичСский β€” Π½Π΅Ρ‚: Ρƒ Π½Π΅Π³ΠΎ просто Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ экзСмпляра класса, связанного с Π½ΠΈΠΌ.

ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅:

Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ мСтодБтатичСский ΠΌΠ΅Ρ‚ΠΎΠ΄
Π•ΡΡ‚ΡŒ связь с экзСмпляром класса Π”Π° НСт
ΠœΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса Π”Π° НСт
ΠœΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса Π”Π° Π”Π°
ΠœΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ класса Π”Π° НСт
ΠœΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ статичСским ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ класса Π”Π° Π”Π°
ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π”Π° Π”Π°
ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ Ρƒ класса НСт Π”Π°

Π—Π°Ρ‡Π΅ΠΌ Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½ΡƒΠΆΠ½Ρ‹, Ссли ΠΎΠ½ΠΈ Ρ‚Π°ΠΊ сильно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹? ВсС Π΄Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ свои прСимущСства.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ статичСским ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ, Π½Π΅ Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΡƒΡŽ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΈΠ½ΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ пСрСмСнная Π±Ρ‹Π»Π° Π² СдинствСнном экзСмплярС. Как, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, пСрСмСнная System.out ( статичСская пСрСмСнная out класса System ).

И, Π²-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, ΠΈΠ½ΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΅Ρ‰Π΅ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. НапримСр, Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° main(), с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ начинаСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: Π΅Π³ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Java-машина Π΄ΠΎ создания экзСмпляра класса.

Π•ΡΡ‚ΡŒ связь с экзСмпляром класса

ΠœΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса

КодКак ΠΎΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

Ну ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ случай: Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΅Ρ‰Π΅ Π½Π΅ создан Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ нашСго класса. БтатичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ класса ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ? Π”Π°. А смоТСт этот статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄?

И Ρƒ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΠ½ Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚? Π’Π΅Π΄ΡŒ Π΅Ρ‰Π΅ Π½Π΅ сущСствуСт Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ экзСмпляра нашСго класса!

ΠœΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса

БтатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΡƒΠ³ΠΎΠ΄Π½ΠΎ β€” ΠΈΠ· любого мСста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. А Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΈΠ· статичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΈ ΠΈΠ· ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ…. Никаких ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Ρ‚ΡƒΡ‚ Π½Π΅Ρ‚.

ΠœΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ класса

БтатичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ Π·Π½Π°Π΅Ρ‚, ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ экзСмпляра класса Π΅ΠΌΡƒ Π±Ρ€Π°Ρ‚ΡŒ значСния ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π£ нас Π²ΠΎΠΎΠ±Ρ‰Π΅ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ситуация, ΠΊΠΎΠ³Π΄Π° статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹Π·Π²Π°Π½, Π° Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ экзСмпляра класса Π΅Ρ‰Π΅ создано Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅ Π±Ρ‹Π»ΠΎ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ класса.

БтатичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π²ΠΎΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒΡΡ?

Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java

ΠœΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ статичСским ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ класса

Битуация с ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΊ статичСским ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ такая ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ с обращСниями ΠΊ статичСским ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ. К статичСским ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΈΠ· любого мСста Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. А Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΈΠ· статичСских ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

И статичСскиС, ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΅Π³ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ. БтатичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°: ΠΏΡ€ΠΈ этом компилятор сам ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎ Π΅Π΅ Ρ‚ΠΈΠΏΡƒ:

КодКак Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΈΡ‚ компилятор

ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ Ρƒ класса

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

10 Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅ Static Π² Java

БтатичСскиС поля

БтатичСский Π±Π»ΠΎΠΊ

БтатичСский ΠΌΠ΅Ρ‚ΠΎΠ΄

БтатичСский класс Π² Java

Π§Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ программист ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅ Static Π² Java

Π’Ρ‹ НЕ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ НЕ статичСским Ρ‡Π»Π΅Π½Π°ΠΌ класса, Π²Π½ΡƒΡ‚Ρ€ΠΈ статичСского контСкста, ΠΊΠ°ΠΊ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠ°. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ компиляции ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ошибка:

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, статичСскиС поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ НЕ потокобСзопасны (Thread-safe) Π² Java. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ это ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ частых ΠΏΡ€ΠΈΡ‡ΠΈΠ½ возникновСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ связанных с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ программирования. Учитывая Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ экзСмпляр класса ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ копию статичСской ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‚ΠΎ такая пСрСмСнная нуТдаСтся Π² Π·Π°Ρ‰ΠΈΡ‚Π΅ β€” Β«Π·Π°Π»ΠΎΡ‡ΠΈΠ²Π°Π½ΠΈΠΈΒ» классом. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ использовании статичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ синхронизированы (synchronized), Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ «состояниС Π³ΠΎΠ½ΠΊΠΈΒ» (race condition).

БтатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ прСимущСство Π² ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ, Ρ‚.ΠΊ. отсутствуСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для доступа ΠΊ Ρ‚Π°ΠΊΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ. БтатичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΈΠΏ класса, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ описаны. ИмСнно поэтому, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΊΠ°ΠΊ нСльзя Π»ΡƒΡ‡ΡˆΠ΅ подходят Π² качСствС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²-Ρ„Π°Π±Ρ€ΠΈΠΊ ( factory ), ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²-ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ( utility ). Класс java.lang.Math β€” Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΡ‡Ρ‚ΠΈ всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ статичны, ΠΏΠΎ этой ΠΆΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ классы-ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Π² Java Ρ„ΠΈΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ( final ).

Π”Ρ€ΡƒΠ³ΠΈΠΌ Π²Π°ΠΆΠ½Ρ‹ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ НЕ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ( Override ) статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Если Π²Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² классС-наслСдникС ( subclass ), Ρ‚.Π΅. ΠΌΠ΅Ρ‚ΠΎΠ΄ с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ сигнатурой, Π²Ρ‹ лишь «спрячСтС» ΠΌΠ΅Ρ‚ΠΎΠ΄ супСркласса ( superclass ) вмСсто пСрСопрСдСлСния. Π­Ρ‚ΠΎ явлСниС извСстно ΠΊΠ°ΠΊ сокрытиС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ( hiding methods ). Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ статичСскому ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ объявлСн ΠΊΠ°ΠΊ Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ, Ρ‚Π°ΠΊ ΠΈ Π² Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΌ классС, Π²ΠΎ врСмя компиляции всСгда Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ исходя ΠΈΠ· Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ пСрСопрСдСлСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса/статичСского ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ static Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ объявлСн Π² статичном Π±Π»ΠΎΠΊΠ΅, Π±ΠΎΠ»Π΅Π΅ извСстным ΠΊΠ°ΠΊ «БтатичСский Π±Π»ΠΎΠΊ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈΒ» ( Static initializer block ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π²ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ класса. Если Π²Ρ‹ Π½Π΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΎΠΉ Π±Π»ΠΎΠΊ, Ρ‚ΠΎ Java собСрёт всС статичСскиС поля Π² ΠΎΠ΄ΠΈΠ½ список ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ Π΅Π³ΠΎ Π²ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ класса. Однако, статичный Π±Π»ΠΎΠΊ НЕ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π½Π΅ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹Π΅. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ Β«Exception Initializer ErrorΒ». На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, любоС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ возникшСС Π²ΠΎ врСмя выполнСния ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ статичСских ΠΏΠΎΠ»Π΅ΠΉ, Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Ρ‘Ρ€Π½ΡƒΡ‚ΠΎ Java Π² эту ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ самая частая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ошибки Β«No Class Def Found ErrorΒ», Ρ‚.ΠΊ. класс Π½Π΅ находился Π² памяти Π²ΠΎ врСмя обращСния ΠΊ Π½Π΅ΠΌΡƒ.

ПолСзно Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π²ΠΎ врСмя компиляции, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ связывания Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ Π½Π΅ статичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π²ΠΎ врСмя исполнСния Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² Java, Ρ‚.ΠΊ. ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ Π²ΠΎ врСмя выполнСния Π½Π΅ распространяСтся Π½Π° Π½ΠΈΡ…. Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, объявляя ΠΌΠ΅Ρ‚ΠΎΠ΄ статичСским. Π’ этом Π΅ΡΡ‚ΡŒ смысл, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚ возмоТности ΠΈΠ»ΠΈ нСобходимости пСрСопрСдСлСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° классами-наслСдниками. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹-Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹-ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ ΠΎΠ±Ρ€Π°Π·Ρ†Ρ‹ примСнСния ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° static. Π”ΠΆΠΎΡˆΡƒΠ° Π‘Π»ΠΎΡ… Π²Ρ‹Π΄Π΅Π»ΠΈΠ» нСсколько прСимущСств использования статичного ΠΌΠ΅Ρ‚ΠΎΠ΄Π°-Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄ конструктором, Π² ΠΊΠ½ΠΈΠ³Π΅ Β«Effective JavaΒ», которая являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ для прочтСния ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ программистом Π΄Π°Π½Π½ΠΎΠ³ΠΎ языка.

На этом всё. ВсС Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅ static Π² Java обязан Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ программист. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±Ρ‹Π»Π° рассмотрСна базовая информация ΠΎ статичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, полях, ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ…, Π±Π»ΠΎΠΊΠ°Ρ… ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅. Π’ Ρ‚ΠΎΠΌ числС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ свойства, Π·Π½Π°Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΈ написании ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Java. Π― надСюсь, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ²Π΅Π΄Ρ‘Ρ‚ свои Π½Π°Π²Ρ‹ΠΊΠΈ использования статичСских ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΠΎΠ² Π΄ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²Π°, Ρ‚.ΠΊ. это ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ для ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎΠ³ΠΎ программирования.»

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ВсС ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… словах static ΠΈ final

Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово static?

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Ρ‡Π»Π΅Π½Π°ΠΌ класса Π² Java, Π½ΡƒΠΆΠ½ΠΎ сначала ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр класса, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ‡Π»Π΅Π½ΠΎΠ² класса с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ экзСмпляра. Но ΠΈΠ½ΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Ρ‡Π»Π΅Π½Π°ΠΌ класса, Π½Π΅ создавая Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Π“Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово static?

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π² Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… контСкстах:

Рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· пСрСчислСнных ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ².

БтатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

БтатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ класса, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ классу, Π° Π½Π΅ Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· имя класса.

БтатичСскиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² класса Π² Java ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… содСрТит ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ копию всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… класса.

Однако, Ссли ΠΌΡ‹ объявим ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ статичСской, всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΈ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, статичСскиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ связаны с классом. И ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса для доступа ΠΊ статичСским ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ. НапримСр:

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ normalVariable β€” пСрСмСнная класса, Π° staticVariable β€” статичСская пСрСмСнная. Если Π²Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

Π­Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° доступ ΠΊ статичСской ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‡Π΅Ρ€Π΅Π· имя класса:

Π—Π΄Π΅ΡΡŒ статичСскиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ β€” ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ уровня класса. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π²Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ΡΡŒ ΠΊ статичСским ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ экзСмпляра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎ это отраТаСтся Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ статичСской ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ уровня класса. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, статичСскиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ всСгда ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Но пСрСмСнная экзСмпляра сохраняСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ экзСмплярС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚:

БтатичСскиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ β€” Ρ€Π΅Π΄ΠΊΠΎΡΡ‚ΡŒ Π² Java. ВмСсто Π½ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ статичСскиС константы. Они ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом static final ΠΈ прСдставлСны Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистр ΠΈ для статичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

БтатичСскиС Π±Π»ΠΎΠΊΠΈ

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ статичСский Π±Π»ΠΎΠΊ с синтаксисом:

БтатичСскиС Π±Π»ΠΎΠΊΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ статичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. БтатичСский Π±Π»ΠΎΠΊ выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° класс загруТаСтся Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π­Ρ‚ΠΎ происходит, Ссли Π² ΠΊΠΎΠ΄Π΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса, Π»ΠΈΠ±ΠΎ статичСскиС Ρ‡Π»Π΅Π½Ρ‹ этого класса.

Класс ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСсколько статичСских Π±Π»ΠΎΠΊΠΎΠ², Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… выполняСтся Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ΠΈ написаны Π² ΠΊΠΎΠ΄Π΅.

Π’Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ΄Π° выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ пСрСмСнная staticVariable ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ статичСского Π±Π»ΠΎΠΊΠ°.

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ статичСский класс

Π’ Java ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ класс Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ класса. Π’Π°ΠΊΠΈΠ΅ классы Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ классами. Они Π±Ρ‹Π²Π°ΡŽΡ‚ Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ²: статичСскиС ΠΈ нСстатичСскиС.

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ класс являСтся Ρ‡Π»Π΅Π½ΠΎΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ Π΅Π³ΠΎ класса. НСстатичСскиС Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ классы (Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ классы) ΠΈΠΌΠ΅ΡŽΡ‚ доступ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ‡Π»Π΅Π½Π°ΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ класса, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΌΠΈ. БтатичСскиС Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ классы Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ доступа ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ‡Π»Π΅Π½Π°ΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ класса.

Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ класс ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ содСрТит Π½Π΅ΡΠ²Π½ΡƒΡŽ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ внСшнСго класса. Если Π²Ρ‹ создадитС экзСмпляр этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ· ΠΊΠΎΠ΄Π° внСшнСго класса, всС Π±ΡƒΠ΄Π΅Ρ‚ сдСлано Π·Π° вас. Если Π²Ρ‹ поступитС ΠΈΠ½Π°Ρ‡Π΅, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Π‘ΠΎ статичСским Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ классом всС ΠΈΠ½Π°Ρ‡Π΅. МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ссли Ρƒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ класса Π½Π΅Ρ‚ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ для доступа ΠΊ Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ статичСским ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ класс MyInnerClass ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊΠΎ всСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ внСшнСго, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. БтатичСскому Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌΡƒ классу, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², нСдоступны ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ внСшнСго класса.

Π“Π΄Π΅ Π² памяти Java хранятся статичСскиС классы ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅?

Π’ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ 8-ΠΉ вСрсии Java статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ Π² пространствС permgen. Но ΠΏΠΎΡ‚ΠΎΠΌ Π±Ρ‹Π»ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ Π½ΠΎΠ²ΠΎΠ΅ пространство памяти, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ мСтапространством β€” Π² Π½Π΅ΠΌ хранятся всС эти ΠΈΠΌΠ΅Π½Π° ΠΈ поля класса, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса с Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΏΡƒΠ» констант, JIT-ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Ρ‚. Π΄. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° удалСния permgen Π² Java 8.0 Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ слоТно ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ permgen.

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово final?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ конСчная пСрСмСнная ΠΈ ΠΊΠΎΠ³Π΄Π° Π΅ΠΉ стоит Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ?

БущСствуСт Ρ‚Ρ€ΠΈ способа ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Когда слСдуСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ

ЕдинствСнноС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” нСльзя. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ постоянными Π½Π° протяТСнии выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π“Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ классы

ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ класс компилятор выдаст ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅:

Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Π—Π΄Π΅ΡΡŒ происходит ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ final ΠΈΠ· Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса. Java этого Π½Π΅ позволяСт ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅:

Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Java: ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

ΠΌΠ½Π΅ интСрСсно, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹? Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Ссли Ρƒ мСня Π΅ΡΡ‚ΡŒ класс с нСсколькими Π³Π΅Ρ‚Ρ‚Π΅Ρ€Π°ΠΌΠΈ ΠΈ сСттСрами, ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ»ΠΈ Π΄Π²Π°, ΠΈ я Ρ…ΠΎΡ‡Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ экзСмпляра класса. ΠžΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π»ΠΈ это, Ρ‡Ρ‚ΠΎ я Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄?

(это статичСский способ?)

Π― Π² Π·Π°ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π΅!

20 ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²

ΠΎΠ΄Π½ΠΎ эмпиричСскоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: спроситС сСбя: «ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΠΈ смысл Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ этот ΠΌΠ΅Ρ‚ΠΎΠ΄, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π» построСн?- Если Ρ‚Π°ΠΊ, Ρ‚ΠΎ ΠΎΠ½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ статичСским.

Π² классС Car Π£ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ double convertMpgToKpl(double mpg) ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π±Ρ‹ статичСским, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ 35mpg, Π΄Π°ΠΆΠ΅ Ссли Π½ΠΈΠΊΡ‚ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ строил Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ. Но!—2—> (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ устанавливаСт ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ автомобиля) Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ статичСским, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ нСмыслимо Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ Π±Ρ‹Π» построСн.

ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… случаях:

Π΅ΡΡ‚ΡŒ нСсколько вСских ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ экзСмпляр Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° для этого, Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π΅Π³ΠΎ Π² статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄. JVM Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ я ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Π» ДТСймса Гослинга, Π·Π°ΡΠ²Π»ΡΡŽΡ‰Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ инструкции Π² JVM, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ быстрыми, Π½ΠΎ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΉΡ‚ΠΈ источник-Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π»ΠΎΠΆΠ½Ρ‹ΠΉ.) Π”Π°, это ΠΌΠΈΠΊΡ€ΠΎ-оптимизация, ΠΈ, вСроятно, нСнуТная. И ΠΌΡ‹, программисты, Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄Π΅Π»Π°Π΅ΠΌ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΊΡ€ΡƒΡ‚Ρ‹Π΅, Π²Π΅Ρ€Π½ΠΎ?

чистота: принимая Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Ρ€Ρ‹ прСдостороТности, ваш статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ чистая функция, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ СдинствСнноС, ΠΎΡ‚ Ρ‡Π΅Π³ΠΎ ΠΎΠ½ зависит, это Π΅Π³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Π”Π°Π½Π½Ρ‹Ρ…, Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ Π»Π΅Π³Ρ‡Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ вас Π½Π΅Ρ‚ ΠΏΡ€ΠΈΡ‡ΡƒΠ΄ наслСдования, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΈ с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ экзСмпляра, Π½ΠΎ компилятор ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ большС со статичСскими ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ (Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ ссылки Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ экзСмпляра, пСрСопрСдСляя ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Ρ‚. Π΄.).

Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ придСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ синглтон, Π½ΠΎ. Π½Π΅ Π½Π°Π΄ΠΎ. ΠŸΠΎΠ΄ΡƒΠΌΠ°ΠΉ Π΄Π²Π°ΠΆΠ΄Ρ‹.

Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ,ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄? Π’ основном, ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· ΠΎΠΊΠ½ΠΎ. Π’Ρ‹ Π½Π΅ смоТСтС ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, , Π½ΠΈ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² интСрфСйс (pre-Java 8). Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большой гибкости ΠΎΡ‚ вашСго Π΄ΠΈΠ·Π°ΠΉΠ½Π°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ государство, Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ с большим количСством ошибки ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΠΈ/ΠΈΠ»ΠΈ ΡƒΠ·ΠΊΠΈΠ΅ мСста, Ссли Π²Ρ‹ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ остороТны.

послС прочтСния статСй Миско я ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠ»ΠΎΡ…ΠΈΠ΅ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния тСстирования. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΅ΡΡ‚ΡŒ!—3—>Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ вмСсто этого(Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ инструмСнт ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΈ зависимостСй, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Guice).

ΠΊΠ°ΠΊ я ΠΌΠΎΠ³Ρƒ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ мСня Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ

Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° «ΠΊΠ°ΠΊ я ΠΌΠΎΠ³Ρƒ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ я Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ » красиво ΠΎΠ±Ρ…ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ. Π’Ρ‹ ΠΈΠ½ΡΡ‚Π°Π½Ρ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ ApplicationFactory Π² Π³Π»Π°Π²Π½ΠΎΠ΅, ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ экзСмпляр всСх Π²Π°ΡˆΠΈΡ… синглСтов.

основная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° со статичСскими ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ-это ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΉ ΠΊΠΎΠ΄

основная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° со статичСскими ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ это ΠΏΡ€ΠΎΡ†Π΅ΡΡΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ кодСкс. Π£ мСня Π½Π΅Ρ‚ идСя ΠΊΠ°ΠΊ unit-test ΠΏΡ€ΠΎΡ†Π΅ΡΡΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ тСстированиС ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ я ΠΌΠΎΠ³Ρƒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ кусочСк ΠΌΠΎΠ΅Π³ΠΎ прилоТСния Π² изоляции. Π’ΠΎ врСмя создания экзСмпляра Π― ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° зависимости с насмСшки / товарищСскиС ΠΌΠ°Ρ‚Ρ‡ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ зависимости. Π‘ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΌ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ » ΠΏΡ€ΠΎΠ²ΠΎΠ΄» ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π΅Ρ‚, ΠΊΠΎΠ΄ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹.

A static ΠΌΠ΅Ρ‚ΠΎΠ΄ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ нуТдаСтся Π² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° для Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°. Π’Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ static ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ main функция Π² Java? Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ начинаСтся ΠΎΡ‚Ρ‚ΡƒΠ΄Π° Π±Π΅Π· создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ классу (Π° Π½Π΅ Π΅Π³ΠΎ экзСмпляру). Они Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ дСйствия Π½Π°Π΄ Π½ΠΈΠΌ, Π° Π·Π°Ρ‚Π΅ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ экзСмпляров связаны с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ, ΠΊΠ°ΠΊ слСдуСт ΠΈΠ· названия, ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра.

Если Π²Ρ‹ примСняСтС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово static с Π»ΡŽΠ±Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, ΠΎΠ½ΠΎ извСстно ΠΊΠ°ΠΊ static method.

/ / ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° измСнСния ΠΎΠ±Ρ‰Π΅Π³ΠΎ свойства всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (статичСскоС ΠΏΠΎΠ»Π΅).

O/P: 111 Индийский BBDIT 222 амСриканский BBDIT 333 ΠšΠΈΡ‚Π°ΠΉ BBDIT

статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π΅ связаны с экзСмпляром, поэтому ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π»ΡŽΠ±Ρ‹ΠΌ нСстатичСским полям класса.

Π²Ρ‹ Π±Ρ‹ использовали статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄, Ссли ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ (ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ статичСских ΠΏΠΎΠ»Π΅ΠΉ) класса.

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ нСстатичСскиС поля класса, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСстатичСский ΠΌΠ΅Ρ‚ΠΎΠ΄.

Π½Π° самом Π΄Π΅Π»Π΅, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ статичСскиС свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² классС, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ Ρ‡Π°ΡΡ‚ΡŒ нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Пока наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π°. И ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ для управлСния статичСскими свойствами Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ экзСмпляра. И Π±Π΅Π· статичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ статичСскими свойствами Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ доступ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π±Π΅Π· экзСмпляра класса.

класс Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ объявлСн ΠΊΠ°ΠΊ статичСский(ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ смысла. Ссли класс объявлСн ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ, ΠΊ Π½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΈΠ· любого мСста), Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ классы ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ статичСскими.

ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ static ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ доступ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ класса ΠΌΠ΅Ρ‚ΠΎΠ΄, Ρ‚. Π΅. ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π±Π΅Π· экзСмпляра класса.

статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅, ΠΈ это ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ваш Main () являСтся статичСским, ΠΈ Π²Ρ‹ Π½Π΅ создаСтС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°.

статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ссли

Π½Π΅ трСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дСйствиС Π½Π°Π΄ экзСмпляром (ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹)

ΠΊΠ°ΠΊ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π² этом постС, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ миль Π² ΠΊΠΈΠ»ΠΎΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈΠ»ΠΈ расчСт Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΎΡ‚ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Π° Π΄ΠΎ ЦСльсия ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Π’ этих ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… с использованиСм статичСского ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅Ρ‚ нСобходимости ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ экзСмпляр всСго Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² памяти ΠΊΡƒΡ‡ΠΈ. Рассмотрим Π½ΠΈΠΆΠ΅

ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ создаСт Π½ΠΎΠ²Ρ‹ΠΉ слСд класса для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°,ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Math ΠΈ Apache-Commons library StringUtils класс Π½ΠΈΠΆΠ΅:

ΠΎΠ΄ΠΈΠ½ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС простой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’Ρ…ΠΎΠ΄Ρ‹ явно сдал, ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΊΠ°ΠΊ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. НаслСдованиС, инстанциация ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ входят Π² ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ, Π§ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Мало ΠΊΡ‚ΠΎ Π²ΠΎΠ·Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΈΠ² тСстируСмости статичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π½ΠΎ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ! Π‘ jMockit ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π΄Π΅Π²Π°Ρ‚ΡŒΡΡ Π½Π°Π΄ статичСскими ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΡΡ‚ΡŒ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΈΠΆΠ΅:

статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹-это ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² Java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π±Π΅Π· создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса. Она ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ классу.

ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ экзСмпляра.

ΠΌΠ½Π΅ интСрСсно, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹?

Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ static ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π±Π΅Π· ссылки static ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π±Π΅Π· ссылки static пСрСмСнная ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΉΠ΄Π΅Π½Π° Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… классах java, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ java.Π»Π΅Π½Π³.ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°!—17—>

Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования, я ΠΌΠΎΠ³Ρƒ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ± этих ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… Π² сочСтании с synchronized ΠΌΠ΅Ρ‚ΠΎΠ΄-это рСализация Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ уровня класса Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ срСдС.

скаТСм, Ссли Ρƒ мСня Π΅ΡΡ‚ΡŒ класс с нСсколькими Π³Π΅Ρ‚Ρ‚Π΅Ρ€Π°ΠΌΠΈ ΠΈ сСттСрами, ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ»ΠΈ Π΄Π²Π°, ΠΈ я Ρ…ΠΎΡ‡Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ экзСмпляра класса. ΠžΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π»ΠΈ это, Ρ‡Ρ‚ΠΎ я Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄?

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° экзСмпляр класса, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ статичСским.

Oracle докумСнтация страница прСдоставляСт Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

Π½Π΅ всС ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² экзСмпляра ΠΈ класса Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹:

Π² Eclipse Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. (Над Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ строкой Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я Π·Π°Π±Ρ‹Π» Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ)

Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² java

статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π΅ основныС Ρ†Π΅Π»ΠΈ:

статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² классС, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ экзСмпляра Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² экзСмплярах класса. Но Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ Π½Π° самом Π΄Π΅Π»Π΅? Π’ΠΎΡ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

класс car ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ экзСмпляра, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Accelerate (). Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ, Ссли Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сущСствуСт (Π±Ρ‹Π» построСн), ΠΈ поэтому это Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ экзСмпляра.

класс car Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ count ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ GetCarCount (). Π­Ρ‚ΠΎ вСрнСтся ΠΎΠ±Ρ‰Π΅Π΅ количСство созданных (ΠΈΠ»ΠΈ построСнных) Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ. Если Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ Π½Π΅ Π±Ρ‹Π»ΠΈ построСны, этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Π΅Ρ€Π½Π΅Ρ‚ 0, Π½ΠΎ ΠΎΠ½ всС Ρ€Π°Π²Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½, ΠΈ поэтому ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ статичСским ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

БтатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² Java(static methods)

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² Java ΠΈ сравним Static ΠΈ Instance. Π“Π»Π°Π²Π½ΠΎΠ΅ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ примСняСтС статичСскоС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово с Π»ΡŽΠ±Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, ΠΎΠ½ΠΎ называСтся статичСским ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² Java?

БтатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ – это ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² Java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π±Π΅Π· создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса. Они Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΈΠΌΠ΅Π½Π΅ΠΌ .
БтатичСскоС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с классом, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΈ Π±Π»ΠΎΠΊΠΎΠΌ. БтатичСскиС Ρ‡Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ классу, Π° Π½Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ экзСмпляру, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ сдСлаСтС Ρ‡Π»Π΅Π½ статичСским, Π²Ρ‹ смоТСтС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ доступ Π±Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ это:

Π—Π΄Π΅ΡΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ myMethod(), ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ Ρ‡Π»Π΅Π½ статичСским, ΠΎΠ½ становится ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ класса. Если ΠΌΡ‹ ΡƒΠ΄Π°Π»ΠΈΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово static ΠΈ сдСлаСм Π΅Π³ΠΎ нСстатичным, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса для Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°.

БтатичСскиС Ρ‡Π»Π΅Π½Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ для всСх экзСмпляров (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²) класса, Π½ΠΎ нСстатичСскиС Ρ‡Π»Π΅Π½Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ экзСмпляра класса.

Бинтаксис

Он хранится Π² Permanent Generation, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ связываСтся с , Π³Π΄Π΅ ΠΎΠ½ΠΈ находятся, Π° Π½Π΅ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ этого класса. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΈΡ… Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΈΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚(Ρ‹) находятся Π² стСкС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования статичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² Java:

Π’Ρ‹Π²ΠΎΠ΄:
vaibhav
shadow

БтатичСскиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅(static) ΠΈ ΠΈΡ… значСния (ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹ ΠΈΠ»ΠΈ ссылки) ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса ΠΈ хранятся Π² пространствС памяти PermGen.

Π§Ρ‚ΠΎ Ссли статичСская пСрСмСнная ссылаСтся Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚?

static int i = 1;
static Object obj = new Object();

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ PermGen. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС ссылка obj Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² сСкции PermGen, Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½Π° ссылаСтся, Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² сСкции heap.

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ экзСмпляра Java?

ΠœΠ΅Ρ‚ΠΎΠ΄ экзСмпляра Java – это способы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ экзСмпляра, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹(ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡ… Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π² стСкС.

ΠœΠ΅Ρ‚ΠΎΠ΄ экзСмпляра ΠΈΠ»ΠΈ статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² Java?

БрСдняя ΠΎΡ†Π΅Π½ΠΊΠ° / 5. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ голосов:

Или подСлись ΡΡ‚Π°Ρ‚ΡŒΠ΅ΠΉ

Π’ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ нашли ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° свой вопрос.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *