๐Effective Kotlin
์๋ฐ์ ํ๋์ ์ฝํ๋ฆฐ์ ํ๋กํผํฐ๋ ์์ ๋ค๋ฅธ ๊ฐ๋ ์ด๋ค.
ํ๋กํผํฐ์ ํน์ง
ํ๋กํผํฐ๋ ์ฌ์ฉ์ ์ ์ ์ธํฐ์ ๊ฒํฐ๋ฅผ ๊ฐ์ง ์ ์๋ค.
field ์๋ณ์ : ํ๋กํผํฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด๋๋ ๋ฐฑํน ํ๋(backing field)์ ๋ํ ๋ ํผ๋ฐ์ค > ์ธํฐ์ ๊ฒํฐ์ ๋ํดํธ ๊ตฌํ์ ์ฌ์ฉ
ํ์ ํ๋กํผํฐ (derrived property)
var์ ์ฌ์ฉํด์ ๋ง๋ ์ฝ๊ณ ์ธ ์ ์๋ ํ๋กํผํฐ๋ ๊ฒํฐ์ ์ธํฐ ์ ์๊ฐ ๊ฐ๋ฅํ๋ค. val๋ก ์ฝ๊ธฐ ์ ์ฉ ํ๋กํผํฐ๋ฅผ ๋ง๋ค๋๋ field๊ฐ ๋ง๋ค์ด์ง์ง ์๋๋ค
ํ๋กํผํฐ๋ ํ๋๊ฐ ํ์๊ฐ ์๋ค.
๊ฐ๋ ์ ์ผ๋ก ์ ๊ทผ์๋ฅผ ๋ํ๋ธ๋ค (val ๋ ๊ฒํฐ, var๋ ๊ฒํฐ์ ์ธํฐ)
๊ทธ๋์ ์ธํฐํ์ด์ค์์ ํ๋กํผํฐ ์ ์๊ฐ ๊ฐ๋ฅ
ํ๋กํผํฐ ์์ (property delegation)์ด ๊ฐ๋ฅํ๋ค
ํ์ฅ ํ๋กํผํฐ๋ฅผ ๋ง๋ค ์๋ ์๋ค. (ํ๋กํผํฐ๋ ๋ณธ์ง์ ์ผ๋ก ํจ์์ด๋ฏ๋ก)
ํ๋กํผํฐ๋ฅผ ๊ตฌ๋ถํ๋ ๋ฐฉ๋ฒ
์์น์ ์ผ๋ก ํ๋กํผํฐ๋ ์ํ๋ฅผ ๋ํ๋ด๊ฑฐ๋ ์ค์ ํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก๋ง ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๊ณ , ๋ค๋ฅธ ๋ก์ง๋ฑ์ ํฌํจํ์ง ์์์ผ ํ๋ค. ๊ธฐ์ค : โ์ด ํ๋กํผํฐ๋ฅผ ํจ์๋ก ์ ์ํ ๊ฒฝ์ฐ, ์ ๋์ฌ๋ก get๋๋ set์ ๋ถ์ผ ๊ฒ์ธ๊ฐ?โ
ํ๋กํผํฐ๋ ์ํ ์งํฉ / ํจ์๋ ํ๋
ํ๋กํผํฐ ๋์ ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ ๊ฒฝ์ฐ
Last updated