본문 바로가기
코틀린

아토믹 코틀린 - 객체 - 생성자

by 밝지 2023. 10. 2.
728x90
반응형
  • 생성자는 객체를 초기화하는 특별한 멤버 함수와 비슷하다. 
  • 코틀린에서는 객체를 생성할 때 new 키워드가 필요없다.
class Wombat

fun main() {
	val wombat = Wombat()
}
  • 생성자에게 정보를 전달할 때는 파라미터 목록을 사용한다. 
class Alien(name: String) {
	val greeting = "Poor $name!"
}

fun main() {
	val alien = Alien("Jiyeong")
    println(alien.greeting)
}

//출력
Poor Jiyeong!
  • 생성자 밖에서는 파라미터에 접근할 수 없다. (alien.name 안된단 뜻)
  • 생성자 밖에서도 생성자 파라미터에 접근하도록 하고 싶다면, 파라미터 목록에 var/val를 지정하면 된다.
class MutableNameAlien(var name: String)

class FixedNameAlien(val name: String)

fun main() {
	val alien1 = MutableNameAlien("Reverse Giraffe")
    val alien2 = FixedNameAlien("Jiyeong Park")
    alien1.name = "Parasite" // 가능
    alien2.name = "Parasite" // 불가능
}
  • 생성자에는 파라미터가 많이 있어도 된다.
class AlienSpecies(
	val name: String,
    val eyes: Int,
    val hands: Int,
    val legs: Int
) {
	fun describe() = 
    	"$name with $eyes eyes, "
        + "$hands hands and $legs legs"
}

fun main() {
	val kevin = AlienSpecies("Zigerion", 2, 2, 2)
    println(kevin.describe())
}

//출력
Zigerion with 2 eyes, 2hands and 2 legs
728x90
반응형