๐Ÿป‍โ„๏ธ์ „๊ณต๊ณต๋ถ€/๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ

์ตœ์ƒ์œ„ ํ”„๋กœํผํ‹ฐ ํด๋ž˜์Šค์— ์†Œ์†๋˜์ง€ ์•Š์€ ํ”„๋กœํผํ‹ฐ๋Š” ์ „์—ญ ๋ณ€์ˆ˜/์ƒ์ˆ˜์˜ ์—ญํ•  public/internal/private ๋“ฑ์˜ ๊ฐ€์‹œ์„ฑ ์ง€์ •์ด ๊ฐ€๋Šฅ private val prefix = "Hello, " fun main() { val name = readLine() ?: return println("$prefix$name") } ๋Šฆ์€ ์ดˆ๊ธฐํ™” ์ƒ์„ฑ์ž์—์„œ ์ดˆ๊ธฐํ™” ๋˜์ง€๋Š” ์•Š์ง€๋งŒ, ํ”„๋กœ๊ทธ๋žจ ํ๋ฆ„ ์ƒ ์‹ค์‚ฌ์šฉ ์‹œ๋Š” ์ดˆ๊ธฐํ™” ๋˜๋Š” ๊ฒƒ์ด ๋ช…๋ฐฑํ•œ ๋ณ€์ˆ˜์—๋Š” lateinit์ด๋ผ๋Š” ์˜ˆ์•ฝ์–ด๋กœ ํ‘œ๊ธฐํ•˜์—ฌ null ๊ฐ’์ด ๋ถˆ๊ฐ€ํ•จ์„ ํ‘œ๊ธฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์‹ค์ œ ์ดˆ๊ธฐํ™”๊ฐ€ ์•ˆ๋  ๊ฒฝ์šฐ UninitializedPropertyAccessException์ด ๋ฐœ์ƒํ•˜๋ฏ€๋กœ !!๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ๊ณผ ๋น„์Šทํ•œ ํŠน์„ฑ์„ ๊ฐ€์ง„๋‹ค. (๊ฐ€๋Šฅํ•˜๋ฉด by lazy ์‚ฌ์šฉ์„ ๊ถŒ์žฅ) class ..
์งˆ๋ฌธ ๊ฐ์ฒด์™€ ๊ตฌ์กฐ์ฒด์˜ ์ฐจ์ด์ ์€? ํด๋ž˜์Šค๋Š” ์ƒ์†์ง€์›&์ฐธ์กฐ ํ˜•์‹, ๊ตฌ์กฐ์ฒด๋Š” ๊ฐ’ ํ˜•์‹, ์ƒ์† ๋ฐ ๋ฉ”์†Œ๋“œ ์ง€์› ํ•˜์ง€ ์•Š์Œ. ํ•จ์ˆ˜๊ฐ€ ์ž๋ฃŒ๊ตฌ์กฐ ์•ˆ์œผ๋กœ ๋“ค์–ด์˜ค๋ฉด ์–ด๋–ค ์žฅ์ ์ด ์ƒ๊ธฐ๋Š”๊ฐ€? ์™œ ์ •๋ณด ์€๋‹‰์€ ๊ฐ์ฒด ๊ธฐ๋ฐ˜์—์„œ๋งŒ ๊ฐ€๋Šฅํ•œ๊ฐ€? ๋ฐ–์—์„œ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์—†๊ฒŒ ์„ ์–ธ var time:Double private Set 4ํด๋ž˜์Šค๋ž€? ๋ณ€์ˆ˜์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ฐ€์ง€๋Š” ํƒ€์ž…์„ ์ •์˜ํ•˜๋Š” ๋‹จ์œ„ ํด๋ž˜์Šค ์„ ์–ธ class Person{ //ํ”„๋กœํผํ‹ฐ var firstName: String = "" var familyName: String = "" var age: Int = 0 //๋ฉ”์†Œ๋“œ fun fullName() = "$firstName $familyName" fun showMe() { println("${fullName()}: $age") } } ๊ฐ์ฒด์˜..
์™œ ํ•จ์ˆ˜ ๋‚ด ํ•จ์ˆ˜ ์‚ฌ์šฉ ์ด์œ  ํŒŒ๋ผ๋ฏธํ„ฐ? ์™œ ํŒจํ‚ค์ง€ ์ด์œ  ๋ชจ๋“ˆ๋ณ„๋กœ ๊ตฌ๋ถ„, ํ˜‘์—…์— ์šฉ์ด ์™œ ์ž๋ฐ”์—๋Š” ์—†๋Š” ์ฝ”ํ‹€๋ฆฐ์˜ ๊ธฐ๋Šฅ(๋ฒ”์œ„: '..' 'unitl' ',') (์†Œ์†: 'in') Kotlin ํ•จ์ˆ˜์˜ ์˜ˆ import kotlin.math.PI // kotlin.math ํŒจํ‚ค์ง€์—์„œ PI ์ƒ์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ด fun circleArea(radius: Double): Double { //ํ•จ์ˆ˜์˜ ์ •์˜ return PI*radius*radius } fun main() { print("Enter radius: ") val radius = readLine()!!.toDouble() println("Circle area: ${circleArea(radius)}") } fun circleArea(radius: Double): Dou..
var/val(๋ถˆ๋ณ€) ์™œ ๊ตฌ๋ณ„ํ• ๊นŒ ๋ณ€ํ•˜๋Š”๊ฒŒ ๋งŽ์œผ๋ฉด ๋ฌธ์ œ๋ฅผ ์žƒ์œผํ‚ฌ ํ™•๋ฅ ์ด ๋†’๋‹ค. ์ฝ”๋“œ๋ถ„์„์— ์šฉ์ด ํ”„๋กœ๊ทธ๋žจ์˜ ์•ˆ์ •์„ฑ๊ณผ ์ฝ”๋“œ ๋ถ„์„์˜ ์šฉ์ดํ•จ์„ ์ฆ๊ฐ€์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ Kotlin์€ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•๋„ ๊ฐ์ฒด ์ทจ๊ธ‰์„ ํ•œ๋‹ค. ์™œ? ์ด๋Š” ์ด๋Ÿฌํ•œ ์ž๋ฃŒํ˜•๋„ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์†์„ฑ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค. ์ด๋กœ์จ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•๊ณผ ๊ฐ์ฒด์˜ ์ฐจ์ด๋กœ ์ธํ•œ ํ˜ผ๋™์„ ์ค„์ด๊ณ  ํ†ต์ผ์„ฑ์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ๋‹ค. Kotlin์€ Java์™€ JVM์— ๊ฐ€๊น์ง€๋งŒ, Kotlin์€ Java๋ณด๋‹ค ๋” ๋†’์€ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™” ๊ณ„์ธต์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ฝ”ํ‹€๋ฆฐ์€ jvm์‚ฌ์ด์— ํ•„ํ„ฐ(์ถ”์ƒํ™”๊ณ„์ธต)๊ฐ€ ์žˆ๋‹ค.java์—์„œ ๊ฐ์ฒด๋ฉด jvm๋„ ๊ฐ์ฒด/ ์ฝ”ํ‹€๋ฆฐ์€ ์ค‘๊ฐ„์— ์ธต์—์„œ ๋ณ€ํ™˜ ๊ฐ€๋Šฅ ๋ชจ๋“  ๊ฒƒ์„ ๊ฐ์ฒด๋กœ ํ‘œํ˜„ํ•˜๋Š” ์ด์œ  Kotlin์€ "๋ชจ๋“  ๊ฒƒ์ด ๊ฐ์ฒด" ์ฒ ํ•™์„ ์ ์šฉํ•˜์—ฌ ๊ฐ„๊ฒฐํ•˜๊ณ  ์ผ๊ด€๋œ ํ”„๋กœ๊ทธ๋ž˜..
๋ฉ”์ธํ•จ์ˆ˜ fun main() { print("Hello") } ๋ณ€์ˆ˜&์ƒ์ˆ˜ fun main() { var i = 10 var name = "ํ‚ด" var point = 3.14 } ์ฝ”ํ‹€๋ฆฐ์€ ํƒ€์ž…์ถ”๋ก ์ด ๋œ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ fun main() { var i:Int =10 var name:String ="ํ‚ด" var point:Double = 3.14 //์ƒ์ˆ˜๋Š” var ๋Œ€์‹  val val num = 20 } ํ†ฑ ๋ ˆ๋ฒจ ์ƒ์ˆ˜ const val ์ž๋ฐ”์™€ ๋‹ฌ๋ฆฌ mainํ•จ์ˆ˜๋ฐ–์œผ๋กœ ์ƒ์ˆ˜๋ฅผ ๋บ„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ํ†ฑ ๋ ˆ๋ฒจ ์ƒ์ˆ˜๋ผ ํ•œ๋‹ค. main()๋ณด๋‹ค ์šฐ์„ ์œผ๋กœ ์ปดํŒŒ์ผ ๋œ๋‹ค. const val num = 20 fun main() { } ํ˜•๋ณ€ํ™˜ fun main() { var i = 10 var l = 20L l = i //์˜ค๋ฅ˜...
๊ณ„๋ž€์†Œ๋…„
'๐Ÿป‍โ„๏ธ์ „๊ณต๊ณต๋ถ€/๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก