[Scala] 클래슀

[원본 링크]

ν΄λž˜μŠ€λŠ” 여타 μ–Έμ–΄λ“€κ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ, class와 μ€‘κ΄„ν˜Έ μ˜μ—­μœΌλ‘œ μ •μ˜λœλ‹€.

λ©€λ²„λ³€μˆ˜λŠ” κ·Έλƒ₯ λ³€μˆ˜ μ„ μ–Έν•˜λ“―μ΄ ν•˜λ©΄ 되고
λ©”μ„œλ“œλ„ κ·Έλƒ₯ ν•¨μˆ˜μ„ μ–Έν•˜λ“―μ΄ ν•˜λ©΄ λœλ‹€.
λ””ν΄νŠΈ μ œμ–΄λŠ” public이닀.

그리고 객체의 생성은 μžλ°”μ™€ λ§ˆμ°¬κ°€μ§€λ‘œ newλ₯Ό μ‚¬μš©ν•œλ‹€.

μ•„λž˜λŠ” μ’Œν‘œκ°’μ„ ν‘œν˜„ν•˜λŠ” κ°„λ‹¨ν•œ 클래슀λ₯Ό κ΅¬ν˜„ν•œ μ½”λ“œλ‹€. image

image toString은 println둜 κ°„λ‹¨ν•˜κ²Œ 좜λ ₯ν•˜κΈ° μœ„ν•΄ μ •μ˜ν•œ 것이닀.

μœ„μ—μ„œλŠ” κ·Έλƒ₯ λ³€μˆ˜μ„ μ–Έμ— κΈ°λ³Έκ°’μœΌλ‘œ 0만 μ€¬μ§€λ§Œ, μƒμ„±μžλ₯Ό 톡해 μ΄ˆκΈ°κ°’μ„ 전달할 μˆ˜λ„ μžˆλ‹€.


μƒμ„±μž
μƒμ„±μžλŠ” μžλ°”μ™€ λ‹€λ₯΄κ²Œ 기본적으둜 ν•¨μˆ˜λͺ… μ˜†μ— 단 ν•˜λ‚˜λ§Œ λ‘˜μˆ˜μžˆλ‹€.
μ΄λŸ°μ‹μœΌλ‘œ 말이닀. image

image

private μ ‘κ·Όμ œμ–΄
슀칼라의 λ””ν΄νŠΈ μ ‘κ·Όμ œμ–΄λŠ” publicμ΄κΈ°λ•Œλ¬Έμ—, 보닀 μ•ˆμ „ν•œ ꡬ쑰λ₯Ό μ›ν•œλ‹€λ©΄ λ³€μˆ˜μ— private을 뢙이도둝 ν•œλ‹€. image

image


λ©€λ²„λ³€μˆ˜ μƒμ„±μžμ— λ‚΄μž₯
μƒμ„±μž μΈμžμ— varμ΄λ‚˜ val을 λΆ™μ—¬μ„œ λ©€λ²„λ³€μˆ˜κΉŒμ§€ λ•Œλ €λ°•λŠ”κ²ƒλ„ κ°€λŠ₯ν•˜λ‹€.
이 μ½”λ“œλŠ” μœ„μ˜ μ½”λ“œμ™€ λ™μΌν•˜κ²Œ λ™μž‘ν•œλ‹€. image

image λ‹€λ§Œ μœ μ˜ν• μ μœΌλ‘ , μ €λ ‡κ²Œ λ§Œλ“  λ©€λ²„λ³€μˆ˜λŠ” public μ œμ–΄λ₯Ό κ°€μ§„λ‹€λŠ” 것이 μžˆλ‹€.

private μ œμ–΄λ₯Ό μ›ν•œλ‹€λ©΄, λͺ…μ‹œν•΄μ€„μˆ˜λ„ μžˆλ‹€. image

image

λ³΄μ‘°μƒμ„±μž
λ‘˜ μ΄μƒμ˜ μƒμ„±μžκ°€ ν•„μš”ν•  κ²½μš°μ—” λ³΄μ‘°μƒμ„±μžλ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€. λ³΄μ‘°μƒμ„±μžλŠ” 이름이 this인 ν•¨μˆ˜λ‘œ μ •μ˜λœλ‹€.
μ•„λž˜ μ½”λ“œλŠ” μΈμžμ—†λŠ” μƒμ„±μžλ₯Ό μΆ”κ°€λ‘œ μ •μ˜ν•œ 것이닀. image

image


κ·Έλ ‡λ‹€.