모바일/Android_Kotlin
[kotlin] class, object, companion object
필경이야
2021. 6. 17. 14:50
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"
}
}