코틀린에서 클래스를 선언하는 방법은 아래와 같다.
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);
}
}
'코틀린' 카테고리의 다른 글
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 |