728x90
package constructor
fun main() {
val obj1 = TestClass1()
val obj2 = TestClass2()
val obj3 = TestClass2(100, 200)
val obj4 = TestClass3(1,2)
val obj6 = TestClass5(1, 2)
val obj7 = TestClass5(100)
}
class TestClass1 {
init {
println("객체 생성되면 자동으로 동작")
}
}
class TestClass2 {
var v1:Int = 0
var v2:Int = 0
constructor(){
println("매개변수 없는 생성자")
}
constructor(v1: Int, v2: Int) {
println("매개변수 2개 생성자")
this.v1 = v1
this.v2 = v2
}
}
// 기본 생성자
class TestClass3 constructor(var a1:Int,val a2:Int) {
}
// TestClass3이랑 같음
class TestClass4(var a1:Int,val a2:Int) {
}
//var, val는 주 생성자에만 사용가능하며 보조 생성자는 사용 불가능
class TestClass5(var a1:Int,val a2:Int) {
init {
println("init 수행")
println("a1 = ${a1}")
println("a2 = ${a2}")
}
// 보조 생성자 사용할려면 무조건 주생성자를 호출해야한다.
constructor(a1: Int) : this(a1, 100){
println("보조 생성자 호출")
}
}
728x90