반응형
Object
Object로 선언된 객체는 최조 생성 시 자동으로 생성되며, 이후에는 코드 전체에서 공용으로 사용될 수 있음.
Companion Object
Class 내에 오브젝트가 존재할 경우, 인스턴스끼리 해당 오브젝트를 서로 공유함.
예제
fun main() {
println(Counter.count)
Counter.countUp()
Counter.countUp()
println(Counter.count)
Counter.clear()
println(Counter.count)
}
object Counter{
var count = 0
fun countUp(){
count++
}
fun clear(){
count = 0
}
}
예제 결과
Listener
이벤트를 수신해서 출력하는 클래스(EventPrinter)와 이벤트를 발생시키는 클래스(Counter)를 서로 연결해주는 역할(EventListener)을 함.
예제2
fun main() {
EventPrinter().start()
}
interface EventListener{
fun onEvent(count:Int)
}
class Counter(var listener: EventListener){
fun count(){
for(i in 1..100){
if(i%5==0) listener.onEvent(i)
}
}
}
class EventPrinter{
fun start(){
val counter = Counter(object: EventListener{
override fun onEvent(count:Int){
print("${count}-")
}
})
counter.count()
}
}
예제2 결과
'Study > WEB' 카테고리의 다른 글
[Kotlin] lazy (0) | 2022.01.06 |
---|---|
[Kotlin] Data Class (0) | 2022.01.06 |
[Kotlin] 스코프 함수 (0) | 2022.01.05 |
[Kotlin] 고차함수 (0) | 2022.01.05 |
[Kotlin] 추상화 (abstract, interface) (0) | 2022.01.05 |
댓글