brunch

코틀린(Kotlin) 클래스 선언 방법 #1

빠르게 살펴보기

by 서준수

코틀린의 클래스 선언 기본형태


class 클래스명 constructor(변수) { }

또는

class 클래스명(변수) { }


Java와 비교해보면


class 클래스명 {

클래스명(변수) {

}

}


다중 생성자

Java


class Person {

private String name;

private int age;


Person(String name) {

this.name = name;

}


Person(String name, int age) {

this.name = name; // 또는 this(name)

this.age = age;

}

}


(Java에서 위와 같이 생성자를 선언하면 기본 생성자가 자동으로 생성되지 않기 때문에 명시적으로 선언하는 것이 좋습니다.)


코틀린


// primary constructor는 constructor 생략 가능

class Person constructor(val name: String, val age: Int) {

// secondary constructor는 constructor 생략 불가능

constructor(name: String) : this(name, 0)

}



default 값을 가지는 생성자와 생성자 매개변수명을 활용


fun main() {
var person = Person(age = 25)
print("name : ${person.name}, age : ${person.age}")
}

class Person(var name: String = "Jane", var age: Int)


위 코드를 보면 생성자에서 name을 Jane으로 지정했습니다. 이때 Person 클래스 생성시 age의 값만 명시하여도 name이 Jane으로 초기화 됩니다. 물론 age는 25로 초기화 됩니다.

Java에서의 기본 생성자 형태인 Person() { }와 다른 개념입니다. Java에서 해당 Person 클래스를 사용하려면 name과 age 모두 선언해주셔야 합니다.

keyword
이전 02화코틀린(Kotlin) 변수 선언 방법