item 25 leekyunghee - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki

톱 레벨 ν΄λž˜μŠ€λŠ” ν•œ νŒŒμΌμ— ν•˜λ‚˜λ§Œ λ‹΄μœΌλΌ

  • ν•œ νŒŒμΌμ— μ—¬λŸ¬ ν΄λž˜μŠ€κ°€ μ •μ˜ λ˜μ–΄ μžˆμ„ 경우
  • ꡳ이 μ—¬λŸ¬ ν†±λ ˆλ²¨ 클래슀λ₯Ό ν•œ νŒŒμΌμ— λ‹΄κ³  μ‹Άλ‹€λ©΄ 정적 멀버 클래슀(μ•„μ΄ν…œ 24)λ₯Ό μ‚¬μš©ν•˜λŠ” 방법을 κ³ λ―Όν•΄λ³Ό 수 μžˆλ‹€.
// μ½”λ“œ 25-1 두 ν΄λž˜μŠ€κ°€ ν•œ 파일(Utensil.java)에 μ •μ˜λ˜μ—ˆλ‹€. - 따라 ν•˜μ§€ 말 것! (150μͺ½)
class Utensil {
    static final String NAME = "pan";
}

class Dessert {
    static final String NAME = "cake";
}

클래슀λ₯Ό λ‘κ°œ μ¨μ•Όν•œλ‹€λ©΄ μ΄λ ‡κ²Œ μ‚¬μš©ν•˜μž

  • λ‹€λ₯Έ ν΄λž˜μŠ€μ— λ”Έλ¦° 뢀차적인 클래슀라면 정적 멀버 클래슀둜 λ§Œλ“œλŠ”μͺ½μ΄ 일반적으둜 더 λ‚˜μ„ 것이닀.
  • 읽기 μ’‹κ³  private으둜 μ„ μ–Έν•˜λ©΄(μ•„μ΄ν…œ 15) μ ‘κ·Ό λ²”μœ„λ„ μ΅œμ†Œλ‘œ 관리할 수 있기 λ•Œλ¬Έμ΄λ‹€.
// μ½”λ“œ 25-3 ν†±λ ˆλ²¨ ν΄λž˜μŠ€λ“€μ„ 정적 멀버 클래슀둜 λ°”κΏ”λ³Έ λͺ¨μŠ΅ (151-152μͺ½)
public class Test {
    public static void main(String[] args) {
        System.out.println(Utensil.NAME + Dessert.NAME);
    }

    private static class Utensil {
        static final String NAME = "pan";
    }

    private static class Dessert {
        static final String NAME = "cake";
    }
}

핡심 정리

μ†ŒμŠ€ 파일 ν•˜λ‚˜μ—λŠ” λ°˜λ“œμ‹œ ν†±λ ˆλ²¨ 클래슀 (ν†±λ ˆλ²¨ μΈν„°νŽ˜μ΄μŠ€ ν•˜λ‚˜λ§Œ λ‹΄μž))