brunch

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

빠르게 살펴보기

by 서준수

Properties and Fields


Properties 란?

코틀린의 클래스는 properties를 가질 수 있습니다. Java로 생각하면 인스턴스 변수입니다. 멤버 변수라고 하지 않는 이유는 멤버 변수에 static 변수도 포함되기 때문입니다.


Java의 멤버 변수


class Person {

int id; // 인스턴스 변수 -> 멤버 변수

String name; // 인스턴스 변수 -> 멤버 변수

static int age; // static 변수, 클래스 변수 -> 멤버 변수

}



코틀린에서 properties는 다음과 같이 선언할 수 있습니다. Java와 변수 선언 방법만 다를 뿐 큰 차이가 없습니다.


class Person {

var id: Int = 0

var name: String = "Suzuki"

}



클래스의 인스턴스 생성하기

properties 사용방법도 거의 동일합니다. 객체를 만들어서 Java의 field처럼 쉽게 변수명으로 부를 수 있습니다.


val student = Person() // new 키워드를 사용하지 않음

student.id = 10

student.name = "Kim"



static 변수처럼 사용하기

위에서 언급한 Java의 static 변수를 코틀린에서 유사하게 사용하는 방법이 있습니다. Companion Objects을 사용하면 됩니다. '클래스명.변수'로 접근하는 형태가 Java의 static 변수와 동일합니다.

(Companion Objects에 대해서는 추후 공부해야 할 부분이네요.)


fun main() {

val student = Person()

student.id = 10

student.name = "Kim"

Person.age = 20


println("student.id = ${student.id}")

println("student.name = ${student.name}")

println("Person.age = ${Person.age}")

}


class Person {

var id: Int = 0

var name: String = "Suzuki"

companion object {

var age: Int = 0

}

}


student.id = 10

student.name = Kim

Person.age = 20



keyword
이전 04화코틀린(Kotlin) 클래스 선언 방법 #2