클래스의 인스턴스를 단 하나만 만들어 사용하도록 하는 코딩 아키텍처 패턴
object 오브젝트명 { ... }
오브젝트명.속성
오브젝트명.함수()
fun main() {
println(Counter.count)
Counter.add()
println(Counter.count)
Counter.add()
println(Counter.count)
Counter.clear()
println(Counter.count)
}
object Counter{
var count=0
fun add(){
count++
}
fun clear(){
count=0
}
}
클래스 내의 오브젝트
(static 과 비슷함)
companion object { ... }
클래스명.속성
클래스명.함수()
fun main() {
var a = JJ("짜장")
var b = JJ("짬뽕")
a.vote()
a.vote()
b.vote()
b.vote()
b.vote()
println("짜장 투표수 : ${a.count}")
println("짬뽕 투표수 : ${b.count}")
println("최종 투표수 : ${JJ.total}")
}
class JJ(val name: String) {
companion object {
var total = 0
}
var count = 0
fun vote() {
total++
count++
}
}
//짜장 투표수 : 2
//짬뽕 투표수 : 3
//최종 투표수 : 5