반응형
- 클래스 없이 정의 할 수 있는 객체다.
- 싱글톤 역할을 한다.
- 클래스 내부에 정의하지만 클래스 인스턴스와 별개로 존재한다.
- 정적으로 접근이 가능하다.(상속 불가능)
- 공통 메서드인 Util Class를 대체할 수 있다.
- 공통 상수인 Enum 혹은 static을 관리할 수 있다.
class MyClass {
companion object {
fun createInstance(name: String): MyClass {
// 인스턴스 생성 로직
return MyClass(name)
}
const val VERSION = "1.0.0"
}
private val name: String
constructor(name: String) {
this.name = name
}
fun getName(): String {
return name
}
}
// Companion object 사용 예시
val instance = MyClass.createInstance("My Instance")
val version = MyClass.VERSION
println(instance.getName())
println(version)
728x90
'☕ Java' 카테고리의 다른 글
[Spring] DTO는 어디서 변환할까? (feat. DDD) (0) | 2024.09.19 |
---|---|
[Java] Apache Commons Library에서의 올바른 압축 해제 방법 (0) | 2024.03.15 |
Java Stream 사용법 ( 당신의 Stream은 안녕하십니까? ) (0) | 2023.08.26 |
커스텀 어노테이션과 리플렉션 (0) | 2023.07.30 |
[Kotlin] Optional vs Kotlin Nullable 문법 비교하기 (0) | 2023.06.21 |