코틀린 4-1 클래스와 생성자

hong030·2022년 1월 29일
0
//1. 파라미터 없고 constructor 쓰기
class User{
    var name:String = ""
    var age:Int = 0
    constructor(name:String, age:Int){
        this.name = name
        this.age = age
    }
    fun someFun(){
        println(name)
        println(age)
    }
}

fun main(){
    val user = User("hellen", 14)
    user.someFun()
}



//2. 파라미터를 주는 경우 init으로 초기화 해야 한다.
class User(name:String, age:Int){
    var name:String
    var age:Int
    init{
        println("i am born!")
        this.name = name
        this.age = age
    }
    fun someFun(){
        println(name)
        println(age)
    }
}


//3. 클래스는 특이하게 파라미터에 val var 추가 가능.
class User(val name:String, val age:Int){
    fun someFun(){
        println(name)
        println(age)
    }
}


//+ 만약 보조 생성자를 선언한다면?
class User{
    var name:String =""
    var age:Int = 1
    constructor(name:String){
        this.name = name
        println("name call: $name")
    }
    constructor(name:String, age:Int){
        this.name = name
        this.age = age
        println("name, age call: $name , $age")
    }
}

fun main(){
    val user1 = User("john")
    val user2 = User("hellen", 14)
}


//++주, 보조 둘 다 쓰려면 반드시 보조 생성자에 주 생성자 선언해야 함.
class User(val name:String){
    constructor(name:String, age:Int):this(name){
        println("$name , $age")
    }constructor(name:String, age:Int, email:String):this(name, age){
        println("$name , $age , $email")
    }
}
profile
자바 주력, 프론트 공부 중인 초보 개발자. / https://github.com/hongjaewonP

0개의 댓글