[μ΄νŽ™ν‹°λΈŒ μžλ°”] Item25. ν†±λ ˆλ²¨ ν΄λž˜μŠ€λŠ” ν•œ νŒŒμΌμ— ν•˜λ‚˜λ§Œ λ‹΄μœΌλΌ.

2023. 3. 14. 11:00ㆍJAVA/Effective JAVA

728x90

 

[μ΄νŽ™ν‹°λΈŒ μžλ°”] Item25. ν†±λ ˆλ²¨ ν΄λž˜μŠ€λŠ” ν•œ νŒŒμΌμ— ν•˜λ‚˜λ§Œ λ‹΄μœΌλΌ 

 

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

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

 μ†ŒμŠ€ 파일 ν•˜λ‚˜μ— ν†±λ ˆλ²¨ 클래슀λ₯Ό μ—¬λŸ¬ 개 μ„ μ–Έν•œλ‹€κ³  ν•΄μ„œ μ»΄νŒŒμΌλŸ¬κ°€ μ—λŸ¬λ₯Ό λ‚΄κ±°λ‚˜ ν•˜μ§€λŠ” μ•ŠλŠ”λ‹€. 

ν•˜μ§€λ§Œ μ†ŒμŠ€ 파일 ν•˜λ‚˜μ— ν†±λ ˆλ²¨ 클래슀λ₯Ό μ—¬λŸ¬ 개 μ„ μ–Έν•˜λŠ” 방법은 μ•„λ¬΄λŸ° 득이 없을 뿐만 μ•„λ‹ˆλΌ μ‹¬κ°ν•œ μœ„ν—˜μ„ κ°μˆ˜ν•΄μ•Ό ν•œλ‹€..!! 

 

μ™œλƒν•˜λ©΄ ν•œ 클래슀λ₯Ό μ—¬λŸ¬ κ°€μ§€λ‘œ μ •μ˜ν•  수 있으며, κ·Έ 쀑 μ–΄λŠ 것을 μ‚¬μš©ν•  μ§€λŠ” μ–΄λŠ μ†ŒμŠ€ νŒŒμΌμ„ λ¨Όμ € μ»΄νŒŒμΌν•˜λŠλƒμ— 따라 달라지기 λ•Œλ¬Έμ΄λ‹€. 

 

-> μ–΄λŠ μ†ŒμŠ€ νŒŒμΌμ„ λ¨Όμ € κ±΄λ„€λŠλƒμ— 따라 λ™μž‘μ΄ λ‹¬λΌμ§€λŠ” 건 λ°˜λ“œμ‹œ μž‘μ•„μ•Ό ν•˜λŠ” 문제둜 이λ₯Ό ν•΄κ²°ν•˜λŠ” 방법은 맀우 κ°„λ‹¨ν•˜κ²Œ λ‹¨μˆœνžˆ ν†±λ ˆλ²¨ 클래슀λ₯Ό  μ„œλ‘œ λ‹€λ₯Έ μ†ŒμŠ€νŒŒμΌλ‘œ λΆ„λ¦¬ν•˜λ©΄ λœλ‹€. 

근데 κ΅³~~이 μ—¬λŸ¬ ν†±λ ˆλ²¨ 클래슀λ₯Ό ν•œ νŒŒμΌμ— λ‹΄κ³  μ‹Άλ‹€λ©΄ 정적 멀버 클래슀λ₯Ό μ‚¬μš©ν•˜λŠ” 방법을 κ³ λ―Όν•΄λ³Ό 수 μžˆλ‹€. 

 

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";
   }
}

λ‹€λ₯Έ ν΄λž˜μŠ€μ— λ”Έλ¦° 뢀차적인 ν΄λž˜μŠ€λŠ” 정적 멀버 클래슀둜 λ§Œλ“œλŠ” 것이 λ‚«λ‹€. 

μ΄λ ‡κ²Œ λ§Œλ“€λ©΄ 읽기 μ’‹κ³ , private둜 μ„ μ–Έν•΄μ„œ μ ‘κ·Ό λ²”μœ„λ„ μ΅œμ†Œν•œμœΌλ‘œ 관리할 수 μžˆλ‹€! 

 

 

 

 

πŸ“š 정리

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

이 κ·œμΉ™λ§Œ λ”°λ₯Έλ‹€λ©΄ μ»΄νŒŒμΌλŸ¬κ°€ ν•œ ν΄λž˜μŠ€μ— λŒ€ν•œ μ •μ˜λ₯Ό μ—¬λŸ¬ 개 λ§Œλ“€μ–΄ λ‚΄λŠ” 일은 사라진닀. 

μ†ŒμŠ€ νŒŒμΌμ„ μ–΄λ–€ μˆœμ„œλ‘œ μ»΄νŒŒμΌν•˜λ“  λ°”μ΄λ„ˆλ¦¬ νŒŒμΌμ΄λ‚˜ ν”„λ‘œκ·Έλž¨μ˜ λ™μž‘μ΄ λ‹¬λΌμ§€λŠ” 일은 κ²°μ½” μΌμ–΄λ‚˜μ§€ μ•Šμ„ 것이닀. 

 

 

 

 

 

 

 

 

 

 

728x90