코틀린

12. 클래스 - 기본

mks160615 2025. 1. 29. 16:13

코틀린에서 클래스를 선언하는 방법은 아래와 같다.

class Car(name: String, color: String, age: Int){ // 매개 변수를 바로 받을 수 있다.

}

 

생성자

객체 지향 프로그래밍에서 객체가 생성될 때 초기화 시켜주는 함수이다.

Java에서는 클래스와 이름이 동일해야 하나 코틀린에서는 init으로 시작한다.

init { // 주 생성자
    println("Name : $name , Color : $color , Age : $age")
}

 

 

클래스에서 위의 코드처럼 작성하면 메인 함수에서는 다음과 같이 작성하면 클래스를 선언할 수 있다.

fun main() {
    val c1 = Car("Toyota", "Red", 10) // Name : Toyota , Color : Red , Age : 10
    val c2 = Car("Hyundai", "White", 15) // Name : Toyota , Color : Red , Age : 10
}

 

보조 식별자

지금까지 소개한 생성자는 주 식별자이다. 코틀린은 Java와 달리 보조 식별자를 통해 동일한 값을 가진 함수를 사용할 수 있다.

constructor로 시작하여 this() 함수를 통해 주 식별자의 코드를 사용한다.

class Car(name: String, color: String, age: Int){ // 매개 변수를 바로 받을 수 있다.

    init { // 주 생성자
        println("Name : $name , Color : $color , Age : $age")
    }

    constructor (name: String, color: String) : this(name, color, 5) { // Int 변수가 5로 동일하다.
        // 보조 식별자로 여러 번 사용이 가능하다.
    }
}

 

메인 함수는 아래와 같이 선언한다.

fun main() {
    val c3 = Car("Volkswagen", "Blue") // Name : VolksWagen , Color : Blue , Age : 5
    val c4 = Car("Flat", "Yellow") // Name : Flat , Color : Yellow , Age : 5
}

 

Java에서는 비슷한 코드를 오버로딩을 통해 생성자를 여러 번 사용한다.

class Phone{

    // 생성자
    Phone(String name, String color, int age){
        System.out.println("Name : "+name+" , Color : "+color+" , Month : "+age);
    }

    // 생성자
    Phone(String name, String color){
        System.out.println("Name : "+name+" , Color : "+color+" , Month : "+12);
    }
}

 

 

 

GitHub - KrillM/Kotlin_Again: init project

init project. Contribute to KrillM/Kotlin_Again development by creating an account on GitHub.

github.com

 

'코틀린' 카테고리의 다른 글

13. 클래스 - 상속  (0) 2025.01.29
11. 객체 지향 프로그래밍  (0) 2025.01.29
10. 자료 구조  (0) 2025.01.29
09. 함수  (1) 2025.01.29
08. String Template  (0) 2025.01.29