반응형
C#, JAVA등에서는 클래스 안에서 정의된 변수나 매서드들을 객체 생성 없이 사용하는 경우 static을 사용한다.
코틀린도 같은 기능이 있는데 키워드가 다르다.
companion을 사용한다.
1. Class 정의 (companion object {})
class Person (name:String) {
companion object{
val menu = "pizza"
fun eatDinner(){
println("$menu is good!")
}
}
val name : String
init {
this.name = name
println(this.name)
}
}
Person.eatDinner() // companion으로 선언되어 바로 접근 가능
var pp = Person("ppp") // companion 밖에 선언되어 객체 생성을 해야 작동
// pizza is good! // companion
// ppp // init
- 기본 클래스 정의에 companion object를 사용한다.
- companion object 안에 있는 값들은 정적 변수/매서드가 된다.
- 일일이 static을 붙일 필요가 없다.
- static과 일반 class내용을 같이 혼용하여 사용 가능하다.
반응형
'안드로이드 앱 만들기 > 코틀린 기초' 카테고리의 다른 글
코틀린 lateinit, lazy (변수 초기값 나중에 작성하기) (6) | 2024.11.04 |
---|---|
코틀린의 array, list, set, map 차이 비교 (0) | 2024.11.04 |
코틀린의 Switch/Case (When 문법) (0) | 2024.11.03 |