Skip to content

Latest commit

Β 

History

History
39 lines (24 loc) Β· 1.55 KB

Item_4._private_constructor.md

File metadata and controls

39 lines (24 loc) Β· 1.55 KB

Item 4. μΈμŠ€ν„΄μŠ€ν™”λ₯Ό λ§‰μœΌλ €κ±°λ“  private μƒμ„±μžλ₯Ό μ‚¬μš©ν•˜λΌ

μ ˆλŒ€ μΈμŠ€ν„΄μŠ€ν™”λ  일이 μ—†λŠ” 클래슀?

  • μƒνƒœκ°’μ΄ μ—†λŠ”, λ‹¨μˆœνžˆ νŠΉμ • κΈ°λŠ₯λ§Œμ„ μˆ˜ν–‰ν•˜λŠ” 클래슀
    • 이 경우 λ©”μ„œλ“œλ“€λ§Œ μ‘΄μž¬ν•˜λ―€λ‘œ μΈμŠ€ν„΄μŠ€κ°€ μ‘΄μž¬ν•  ν•„μš”κ°€ μ—†μŒ

μ˜ˆμ‹œ

  • java.lang.Math, java.lang.Arrays 와 같이 μˆ˜ν•™ μ—°μ‚° / λ°°μ—΄ λ“± νŠΉμ • 주제의 λ™μž‘μ„ μˆ˜ν–‰ν•˜λŠ” ν΄λž˜μŠ€λ“€

  • Arrays ν΄λž˜μŠ€λŠ” λ‚΄λΆ€μ μœΌλ‘œ μ•„λž˜μ™€ 같은 μƒμ„±μžλ§Œμ„ κ°–λŠ”λ‹€.

    // Suppresses default constructor, ensuring non-instantiability.
    private Arrays() {}

private μƒμ„±μžλ‘œ λ§Œλ“œλŠ” 이유?

μƒμ„±μž μ•ˆ μ“Έ κ±°λ‹ˆκΉŒ μƒμ„±μž μ•ˆ λ§Œλ“€λ©΄?

  • μ»΄νŒŒμΌλŸ¬μ— μ˜ν•΄ public μ ‘κ·Ό μ œμ–΄μžλ₯Ό κ°–λŠ” κΈ°λ³Έ μƒμ„±μžκ°€ 생김
  • μΈμŠ€ν„΄μŠ€ λ§Œλ“€κΈ° κ°€λŠ₯

abstract 클래슀둜 μ„ μ–Έν•˜λ©΄?

  • 상속을 ν•˜κ³ , μžμ‹ 클래슀의 μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“€ 수 있음

private μƒμ„±μž

  • μƒμ„±μžλ₯Ό λͺ…μ‹œμ μœΌλ‘œ λ§Œλ“€μ—ˆμœΌλ―€λ‘œ public κΈ°λ³Έ μƒμ„±μžκ°€ 생기지 μ•ŠμŒ
  • 상속을 해도 λΆ€λͺ¨ 클래슀의 μƒμ„±μžλ₯Ό ν˜ΈμΆœν•  수 μ—†μ–΄ μΈμŠ€ν„΄μŠ€ 생성 λΆˆκ°€λŠ₯

μƒμ„±μž λ‚΄λΆ€μ—μ„œ μ˜ˆμ™Έ λ˜μ§€κΈ°

  • Item 3μ—μ„œ μ–ΈκΈ‰ν–ˆλ“― μƒμ„±μžλ₯Ό private으둜 선언해도 λ¦¬ν”Œλ ‰μ…˜μ— μ˜ν•΄ 호좜될 수 있음
  • 그리고 ν•΄λ‹Ή 클래슀 λ‚΄λΆ€μ—μ„œ λ©”μ„œλ“œ μ •μ˜ 쀑 μ‹€μˆ˜λ‘œ μƒμ„±μžλ₯Ό ν˜ΈμΆœν•  μˆ˜λ„ 있음
  • μ΄λŸ¬ν•œ 경우λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ private μƒμ„±μž λ‚΄μ—μ„œ μ˜ˆμ™Έλ₯Ό λ˜μ§€λŠ” 것도 쒋은 λ°©λ²•μž„