- ๋ฐ๋ณต๋ฌธ (for in, forEach, .., until, step, downTo, while, do while)
์ค๋์ ๊ฐ์ฒด ์งํฅ์ ๊ฝ class์ ๋ํด์ ๋ฐฐ์ ๋ณด์์ต๋๋ค.
๊ฐ์ฒด๋ ๊ธฐ๋ฅ๊ณผ ์์ฑ์ ๊ฐ์ง ๊ฒ๋ค์
๋๋ค.
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ด๋ฌํ ๊ฐ์ฒด๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋๋ฐ ํ๋ ๊ฒ์ ์๊ธฐํฉ๋๋ค.
๊ธ๋ก ๊ฐ์ฒด๋ฅผ ์๋ฒฝํ ์ดํดํ๊ธฐ์ ์ด๋ ค์ธ ์ ์๊ธฐ์ class๋ฅผ ๋ฐฐ์ฐ๋ฉฐ ๊ฐ์ฒด๋ฅผ ์ดํดํด ๊ฐ๋๋ก ํ๊ฒ ์ต๋๋ค.
class๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
class์ ๊ธฐ๋ฅ(ํจ์)๊ณผ ์์ฑ(ํ๋กํผํฐ)๋ฅผ ์ ์ธํ๋ฉด ๊ทธ class๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ ๊ฒ์ด์ฃ .
์ฝ๋์ ํจ๊ป ์์๋ฅผ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
class Animal{
var age : Int = 0
var name : String=""
var furColor : String = ""
fun bark(){
println(name+"์ด ์ง์ต๋๋ค")
}
}
Animal์ด๋ผ๋ class๋ฅผ ๋ง๋ค์์ต๋๋ค. Animal ํด๋์ค์๋ ๋๋ฌผ์ ํน์ฑ์ ์จ๋ณด๊ฒ ์ต๋๋ค.
๋๋ฌผ์ ๋์ด์ ์ด๋ฆ, ํธ ์ ๋ฑ ์ฌ๋ฌ ์์ฑ๋ค์ด ์์ ๊ฒ์ด๊ณ ์ง๋ ํ์๋ฅผ ํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ด๊ฒ์ class๋ฅผ ํตํด์ ๋์ด, ์ด๋ฆ, ํธ ์์ ์์ฑ๊ณผ ์ง๋ ๊ธฐ๋ฅ์ ํ ์ ์๋ Animal class๋ฅผ ์์ฑํ์ต๋๋ค.
์ด์ ์์ฑํ class๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ๋ด ์๋ค.
fun main(args: Array<String>) {
val dog=Animal()
}
๋ฉ์ธ ํจ์์์ Animal class๋ฅผ ํตํด dog๋ผ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ์ต๋๋ค.
dog๋ผ๋ ๊ฐ์ฒด์๋ Animal class์ ์์ฑ๊ณผ ๊ธฐ๋ฅ์ด ๋ถ์ฌ๋ ๊ฒ์ด์ฃ .
๊ฐ์ฒด๋ช
.์์ฑ(๊ธฐ๋ฅ)์ ์ฌ์ฉํ๋ฉด class๋ก ๋ถ์ฌ๋ ๊ฐ์ฒด์ ์์ฑ(๊ธฐ๋ฅ)์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ผ dog๊ฐ์ฒด์ ์ด๋ฆ์ ์ถ๋ ฅํด๋ณด๊ฒ ์ต๋๋ค.
fun main(args: Array<String>) {
val dog=Animal()
print(dog.name)
}
๋ณด๋ค์ํผ ์๋ฌด ๊ฒ๋ ๋์ค์ง ์์ต๋๋ค.
class์์ ์ ์ํ ์์ฑ๋ค์ class์ ์ด๋ค ์์ฑ์ด ์๋์ง ๋ช
์ํ ๊ฒ์ด์ง, ๊ฐ์ฒด dog์ ์ง์ ์ ์ธ ์์ฑ์ ์๋๋๋ค.
๊ฐ์ฒด์ ์์ฑ์ ์ค์ ํ๊ธฐ ์ํด์ ๊ฐ์ฒด๋ช
.์์ฑ=๊ฐ์ผ๋ก ์ฌ์ฉํ ์๋ ์์ง๋ง, ๋ฒ๊ฑฐ๋ก์์ ๋ฐฉ์งํ๊ธฐ ์ํด์ ์์ฑ์๋ผ๋ ๊ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์ฑ์๋ ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ํธ์ถ๋ฉ๋๋ค.
์ฃผ ์์ฑ์์ ๋ถ ์์ฑ์๋ก ๋๋ฉ๋๋ค.
๊ฐ์ฒด๋ฅผ ์์ฑํ ๋, ๊ดํธ์ ๊ฐ์ ๋ฃ๊ฒ ๋๋ฉด ๊ฐ์ฒด๊ฐ ์์ฑ๋๊ณ ๊ฐ์ด ์์ฑ์์ ๋งค๊ฐ ๋ณ์๋ก ์ ๋ฌ๋ฉ๋๋ค.
์ฃผ ์์ฑ์๋ class์ ์ ์ธ๊ณผ ๊ฐ์ด ์ ์ํฉ๋๋ค.
class Person1 constructor(name: String) {
val name: String = name
}
//1๋ฒ
class Person2(val name: String) {
}
//2๋ฒ
fun main(args: Array<String>) {
val me = Person1("Lee room")
val you = Person2("U")
println(me.name)
println(you.name)
}
์๋๋ 1๋ฒ ์ฒ๋ผclass์ด๋ฆ constructor(๋งค๊ฐ ๋ณ์ ์ด๋ฆ : ์๋ฃํ)์ผ๋ก ์์ฑํ์ง๋ง
2๋ฒ์ฒ๋ผ constructor๋ฅผ ์๋ตํ ์๋, ์์ฑ์์์ ์ ์ธ์ ํจ๊ปํ ์๋ ์์ต๋๋ค.
์ฃผ ์์ฑ์๋ฅผ ์ด๊ธฐํ ํ๊ฑฐ๋ ์ฃผ ์์ฑ์์ ์คํ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ ๋์ init์ ์ฌ์ฉํฉ๋๋ค. init์ class ์ค๊ดํธ ์์์ init{์คํ๋ฌธ}์ ํ์์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
ex)
class Person constructor(_name: String) {
val name: String
init {
name = _name
println("์๋
ํ์ธ์ $name ์
๋๋ค.")
}
}
fun main(args: Array<String>) {
val me = Person("LeeRoom")
}
- ๋ํ์ค๋น์ ํ๊ต ์ผ์ ๊ณผ ๊ณต๋ถ, ๋ธ๋ก๊ทธ ์์ฑ์ ๋์์ ํ๋๋ผ ์๊ฐ์ด ๋ง์ด ์๋ค.
- class๋ ๋ด์ผ ๋ค์ ๊ณต๋ถํ์.