๋ชฉ๋กโœ๏ธ/Kotlin (2)

DevLog ๐Ÿ˜ถ

[Kotlin] ์ฝ”ํ‹€๋ฆฐ์˜ ๋ณ€์ˆ˜์™€ ํƒ€์ž…

๐Ÿ’กํ•ต์‹ฌ๋งŒ ๊ณจ๋ผ๋ฐฐ์šฐ๋Š” ์ฝ”ํ‹€๋ฆฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ •๋ฆฌ : ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž๋ฐ”์™€ ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์„ ์ œ์™ธํ•˜๊ณ , ๊ฐ„๋‹จํ•œ ๋ฌธ๋ฒ•๋“ค๋งŒ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค. ๐Ÿ˜Ž โœ”๏ธ ์ฝ”ํ‹€๋ฆฐ์˜ ํŠน์ง• - JVM์—์„œ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฐ”์™€ ํ˜ธํ™˜์„ฑ์ด ๋†’๋‹ค. - ์ •์  ํƒ€์ž… ์–ธ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋ชจ๋“  ํƒ€์ž…์€ ์ปดํŒŒ์ผ ์‹œ์ ์—์„œ ์•Œ ์ˆ˜ ์žˆ๋‹ค. - ํƒ€์ž… ์ถ”๋ก  ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋ณ€์ˆ˜ ์„ ์–ธ ์‹œ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š์•„๋„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. - ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€์›ํ•œ๋‹ค. - ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋‹ค์–‘ํ•œ ํ•จ์ˆ˜์™€ ๋žŒ๋‹ค์‹์„ ์ง€์›ํ•œ๋‹ค. - ์ง€์—ญ ํ•จ์ˆ˜ (ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ๋‹ค๋ฅธ ํ•จ์ˆ˜ ์„ ์–ธ) - ๋ฉค๋ฒ„ ํ•จ์ˆ˜ (ํด๋ž˜์Šค ๋‚ด๋ถ€์— ํ•จ์ˆ˜๋ฅผ ์„ ์–ธ = ์ž๋ฐ”์˜ ๋ฉ”์„œ๋“œ) - ์ œ๋„ค๋ฆญ ํ•จ์ˆ˜ (ํ•จ์ˆ˜์— ์ œ๋„ค๋ฆญ ํƒ€์ž… ์‚ฌ์šฉ) - ๊ณ ์ฐจ ํ•จ์ˆ˜ (๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ์ธ์ž๋กœ ๋ฐ›์•„ ์‹คํ–‰) - ์žฌ๊ท€ ํ•จ์ˆ˜ (์žฌ๊ท€ ํ˜ธ..

โœ๏ธ/Kotlin 2023. 2. 22. 19:04
[Kotlin] ์ฝ”ํ‹€๋ฆฐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ์ •๋ฆฌ - Data Class, Companion Object, lateInit, val vs var

- ์ฝ”ํ‹€๋ฆฐ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋ฌธ๋ฒ•์ ์œผ๋กœ ๋„ˆ๋ฌด ๋ถ€์กฑํ•˜๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ๋ช‡ ๊ฐ€์ง€ ํŠน์ง•๋“ค์„ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค. โœ”๏ธ Kotlin Data class ๋ฐ์ดํ„ฐ์˜ ๋ณด๊ด€ ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค. ์ž๋™์œผ๋กœ toString(), hashCode(), equals(), copy() ๋ฉ”์„œ๋“œ๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค. ํŠน์ง• ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋Š” 1๊ฐœ ์ด์ƒ์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ์„ ์–ธํ•ด์•ผ ํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž ํ”„๋กœํผํ‹ฐ๋Š” val ๋˜๋Š” var์œผ๋กœ ์„ ์–ธํ•ด์•ผ ํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค์— abstract, open, sealed, inner ๋ฅผ ๋ถ™์ผ ์ˆ˜ ์—†๋‹ค. ํด๋ž˜์Šค์—์„œ toString(), hashCode(), equals(), copy()๋ฅผ overrideํ•˜๋ฉด, ๊ทธ ํ•จ์ˆ˜๋Š” ๊ตฌํ˜„๋œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค๋Š” ์ƒ์† ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. toString..

โœ๏ธ/Kotlin 2022. 10. 22. 01:24