class User{ }
constructor()
부분이 생성자이다.(예시는 보조생성자)
class User{
var name = "lumine"
constructor(name:String){
this.name = name
}
fun someFun(){
println("asdf")
}
class SecondClass{}
}
코틀린 선언에는 new
를 쓰지 않는다.
val user = User("lumine")
constructor
키워드로 클래스 선언부에 선언class User constructor(){
}
constructor
생략
class User(){
}
init
: 주생성자로 객체생성 시 로직 수행
class User(name:String){
init {
println("asdf")
}
}
생성자 매개변수 사용 시, init
에서 접근 필요
class User(name:String){
var name: String
init {
this.name = name
}
fun someFun(){
println("$name")
}
}
혹은 매개변수를 var
또는 val
로 선언하면 클래스 멤버변수로 사용가능 ( 주생성자만 가능 )
class User(val name:String){
fun someFun(){
println("$name")
}
}
클래스 본문에 constructor
키워드로 선언하는 생성자
class User{
constructor(name:String){
println("asdf")
}
constructor(name:String, id: Int){
println("qwer")
}
}
주생성자와 보조생성자를 같이 선언할 경우, 서로 연결해줘야한다.
class User(name:String){
constructor(name:String, id: Int):this(name){//주 생성자 연결
println("asdf")
}
constructor(name:String, id: Int,email: String):this(name,id){//첫번째 보조생성자 연결
println("qwer")
}
}