[kotlin] class, object, companion object
2021. 6. 17. 14:50ㆍ모바일/Android_Kotlin
class, object, companion object
class
- 자바의 클래스와같다
object
- 싱글턴을 간단하게 구현할 수 있게 해준다
- object 키워드는 클래스를 정의하면서 객체를 생성합니다.
fun main() {
val singletonClass = Singleton
println(singletonClass.st)
println(singletonClass.function())
}
object Singleton{
val st = "하하"
fun function() = "싱글턴메소드"
}
//하하
//싱글턴메소드
companion object
- static 처럼 동작하게 만들어준다
- static 과의 차이점은 companion object는 객체이고 변수에 할당할 수 있다(자바는 불가능)
- companion object 에 이름을 지을 수 있다.
fun main() {
val myClass = MyClass()
println(myClass.prop) //companion이 아니므로 인스턴스(객체)화 해야한다
println(MyClass.zz)
// companion이므로 클래스가 메모리에 적재될 때 자동으로 함께 생성되므로 인스턴스 생성 없이도 클래스명 다음에 .을 붙여서 사용 가능하다
}
class MyClass{
val prop = "ㅋㅋ"
companion object{
val zz = "zz"
}
}
//ㅋㅋ
//zz
- MyClass.zz = MyClass.
fun main() {
val singletonClass = Singleton
println(singletonClass.st)
println(singletonClass.function())
println(MyClass2.MyCompanion2.zz)
println(MyClass2.zz)
}
class MyClass2{
val prop = "ㅋㅋ"
companion object MyCompanion2 {
val zz = "zz"
}
}
'모바일 > Android_Kotlin' 카테고리의 다른 글
[kotlin] High-Order-Function (0) | 2021.06.18 |
---|---|
[kotlin] inline , noinline, crossline function (0) | 2021.06.18 |
[kotlin] 함수 리터럴 (with receiver) (0) | 2021.06.17 |
[Kotlin] 람다 총정리 (0) | 2021.06.15 |
RecyclerView Item 드래그 앤 드랍(Drag and Drop) 순서 변경 (0) | 2021.06.09 |