🧷 정적 ν•„λ“œ(static field)λž€?


βœ… μ •μ˜

정적 ν•„λ“œλŠ” ν΄λž˜μŠ€μ— κ³ μ •μ μœΌλ‘œ μ†ν•œ λ³€μˆ˜λ‘œ, ν•΄λ‹Ή ν΄λž˜μŠ€λ‘œλΆ€ν„° λ§Œλ“€μ–΄μ§„ λͺ¨λ“  객체가 λ™μΌν•œ 값을 κ³΅μœ ν•˜λŠ” λ³€μˆ˜μž…λ‹ˆλ‹€.

즉, κ°μ²΄λ§ˆλ‹€ λ”°λ‘œ μ‘΄μž¬ν•˜μ§€ μ•Šκ³ , λ”± ν•˜λ‚˜μ˜ μ €μž₯κ³΅κ°„λ§Œ λ§Œλ“€μ–΄μ Έ κ³΅ν†΅μœΌλ‘œ μ‚¬μš©λ©λ‹ˆλ‹€.


πŸ“Œ νŠΉμ§•

ν•­λͺ© μ„€λͺ…
πŸ“¦ 클래슀 μ†Œμ† μΈμŠ€ν„΄μŠ€κ°€ μ•„λ‹Œ 클래슀 μžμ²΄μ— μ’…μ†λœ λ³€μˆ˜μž…λ‹ˆλ‹€.
πŸ” 곡유 데이터 ν•΄λ‹Ή 클래슀둜 λ§Œλ“€μ–΄μ§„ λͺ¨λ“  객체가 값을 κ³΅μœ ν•©λ‹ˆλ‹€.
⏱ μ΄ˆκΈ°ν™” μ‹œμ  ν΄λž˜μŠ€κ°€ 처음 λ©”λͺ¨λ¦¬μ— λ‘œλ“œλ  λ•Œ 단 ν•œ 번만 μ΄ˆκΈ°ν™”λ©λ‹ˆλ‹€.
🧭 μ ‘κ·Ό 방식 클래슀 μ΄λ¦„μœΌλ‘œ μ ‘κ·Ό κ°€λŠ₯ β†’ 클래슀λͺ….ν•„λ“œλͺ…
πŸ§β€β™‚οΈ 객체 없이도 μ‚¬μš© 객체λ₯Ό μƒμ„±ν•˜μ§€ μ•Šμ•„λ„ μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.

β˜• μ‹€μƒν™œ λΉ„μœ 

**"학ꡐ 이름"**은 λͺ¨λ“  학생듀이 κ³΅μœ ν•˜λŠ” κ°’μž…λ‹ˆλ‹€.

ν•™μƒλ§ˆλ‹€ 이름과 λ‚˜μ΄λŠ” λ‹€λ₯΄μ§€λ§Œ, "학ꡐ 이름"은 같은 곳에 λ‹€λ‹ˆλ―€λ‘œ κ³΅ν†΅λœ ν•˜λ‚˜μ˜ κ°’μž…λ‹ˆλ‹€.

μ΄λ•Œ "학ꡐ 이름"은 정적 ν•„λ“œ, μ΄λ¦„μ΄λ‚˜ λ‚˜μ΄λŠ” μΈμŠ€ν„΄μŠ€ ν•„λ“œμž…λ‹ˆλ‹€.


πŸ§‘β€πŸ’» μ„ μ–Έ 및 μ‚¬μš© 예제

public class MyClass {
    public static int count = 0;  // 정적 ν•„λ“œ μ„ μ–Έ
}

βœ… μ‚¬μš© 방법

// 클래슀 이름을 톡해 직접 μ ‘κ·Ό (κ°€μž₯ 일반적이고 ꢌμž₯)
MyClass.count = 10;

// 객체λ₯Ό λ§Œλ“€μ–΄μ„œλ„ μ ‘κ·Ό κ°€λŠ₯ (κ°€λŠ₯ν•˜μ§€λ§Œ ꢌμž₯ν•˜μ§€ μ•ŠμŒ)
MyClass obj = new MyClass();
System.out.println(obj.count);  // 10


πŸ†š μΈμŠ€ν„΄μŠ€ ν•„λ“œμ™€μ˜ 차이

ν•­λͺ© μΈμŠ€ν„΄μŠ€ ν•„λ“œ 정적 ν•„λ“œ (static)
μ†Œμ† 객체(instance) 클래슀(class)
λ©”λͺ¨λ¦¬ μœ„μΉ˜ 객체가 생성될 λ•Œ λ©”λͺ¨λ¦¬μ— μ €μž₯ ν΄λž˜μŠ€κ°€ λ‘œλ“œλ  λ•Œ λ©”λͺ¨λ¦¬μ— μ €μž₯
개수 κ°μ²΄λ§ˆλ‹€ 별도 쑴재 ν΄λž˜μŠ€λ‹Ή ν•˜λ‚˜λ§Œ 쑴재
μ ‘κ·Ό 방식 객체λͺ….ν•„λ“œ 클래슀λͺ….ν•„λ“œ (or 객체λͺ….ν•„λ“œ)
데이터 곡유 각 κ°μ²΄λ§ˆλ‹€ 닀름 λͺ¨λ“  객체가 λ™μΌν•œ κ°’ 곡μœ