[Kotlin] λ™λ°˜(companion) 객체

[원본 링크]

μžλ°”λ‚˜ 기타 μ–Έμ–΄λ“€μ—μ„œλŠ” static λ“±μ˜ ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•΄μ„œ 클래슀 내에 μ •μ μœΌλ‘œ μ‘΄μž¬ν•˜λŠ” λ³€μˆ˜λ‚˜ λ©”μ„œλ“œλ₯Ό μ„ μ–Έν•  μˆ˜κ°€ μžˆλ‹€.

근데 코틀린은 κ·Έλ ‡μ§€κ°€ μ•Šμ•„μ„œ μ’€ 우회적인 방법을 μ¨μ•Όν•˜λŠ”λ°, 그게 μ»΄νŒ¨λ‹ˆμ–Έ 였브젝트λ₯Ό μ‚¬μš©ν•˜λŠ” 것이닀.

μ»΄νŒ¨λ‹ˆμ–Έ μ˜€λΈŒμ νŠΈλŠ” 클래슀 내에 단 ν•˜λ‚˜λ§Œ μ‘΄μž¬ν•˜λŠ” 객체인데, μ—¬κΈ°λ‹€ λ©”μ„œλ“œλ‚˜ λ³€μˆ˜λ₯Ό 두면 클래슀λ₯Ό 톡해 μ ‘κ·Όν•  수 μžˆλ‹€.

μ•„λž˜ ν΄λž˜μŠ€λŠ” μ™ΈλΆ€μ˜ 생성을 private으둜 막고 정적인 νŒ©ν† λ¦¬λ©”μ„œλ“œ getObject에 생성을 μœ„μž„ν•œ κ°„λ‹¨ν•œ ν΄λž˜μŠ€λ‹€. image