Kotlin, Object
Object
기존에 클래스의 함수나 맴버변수를 사용하기 위해서는 실제로 해당 클래스를 인스턴스로 만들어 주어야 했다.
하지만 인스턴스를 만들지 않고 함수나 맴버변수들을 여기저기서 사용할 수 있도록 지원하는(Singleton) Kotlin의 기능이 Object 이다.
Object는 최초 사용시 자동으로 생성되고, 생성자도 필요하지 않다.
object Counter {
var count = 0
fun countUp() {
count++
}
fun clear() {
count = 0
}
}
fun main() {
println(Counter.count)
Counter.countUp()
Counter.countUp()
println(Counter.count)
Counter.clear()
println(Counter.count)
}
Class 안의 Object
클래스 안에서 Object를 만들면 여러개의 인스턴스들이 공통으로 사용하는 값이나 함수를 아래 그림 처럼 가질 수 있다.
기능 적으로는 기존 언어들의 Static과 비슷하다.
위 기능은 'companion object' 키워드를 통해 구현이 가능하다.
class FoodPoll (val name: String) {
companion object {
var total = 0
}
var count = 0
fun vote() {
total++
count++
}
}
fun main() {
var a = FoodPoll("짜장")
var b = FoodPoll("짬뽕")
a.vote()
a.vote()
b.vote()
b.vote()
b.vote()
println("${a.name} : ${a.count}")
println("${b.name} : ${b.count}")
println("총계 : ${FoodPoll.total}")
}
Author And Source
이 문제에 관하여(Kotlin, Object), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yebali/Kotlin-Object저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)