class Myclass{}
fun main(args: Array<String>){
val obj = MyClass() // 클래스 이용시 객체 생성
}
class User1 constructor(name: String, age: Int){ }
// 별도 수식 구문이 없으면 예약어 생략 가능
class User2 (name: String, age: Int){
val name: String = "kim"
init{ // 초기화 블록에선 주생성자 실행영역이므로 매개변수 이용
println("i am init.. : $name..$age")
}
fun hello(){ // 클래스의 프로퍼티 이용
println("hello $name")
}
}
val user1 = User1() // 인수 전달 안해서 에러, 기본값 명시했을땐 에러 X
val user2 = User1("kkang", 33)
🖥
i am init.. kkang, 33
hello kim
// 매개변수 없는 주 생성자 자동 추가
class User1{ }
// 주 생성자만 선언
class User2 (name: String){ }
// 보조 생성자만 선언
class User3{
constructor(name: String){}
}
fun main(args: Array<String>){
val user1 = User1()
val user2 = User2("kkang")
val user3 = User3() // 매개변수가 없는 생성자가 존재안해서 에러
}
1) 생성자 오버로딩
class User4{
constructor(){}
constructor(name: String){}
constructor(name: String, age: Int){}
}
class User1(name: String){
init {
println("init block..$name")
}
constructor(name: String, age: Int):this(name){
println("constructor..$name..$age")
}
}
fun main (args: Array<String>){
println("-주생성자로 생성-")
val user1 = User1("kkang")
println("-보조생성자로 생성-")
val user2 = User1("kkang",22)
}
🖥
-주생성자로 생성-
init block..kkang
-보조생성자로 생성-
init block..kkang
constructor..kkang..22