loose
이로운 개발하기
loose
전체 방문자
오늘
어제
  • 전체 (207) N
    • ☕ Java (24)
    • 📘 Effective Java (9)
    • 🍃 Spring (48)
    • 📖 ORM (9)
    • ☸️ Kubernetes (13)
    • 🐧 Linux (5)
    • 🐋 Docker (5)
    • 🛠️ CI & CD (7)
    • 🕸️ Web (6)
    • 🔗 Distributed System (3)
    • 📜 Js (10)
    • 📈 Database (11)
    • 🗂️ Etc (34)
    • 🧑 Chitchat (11)
    • 📒 문학 (11) N
    • 👜 개인 공부 창고 (1)

공지사항

반응형

최근 글

최근 댓글

loose

이로운 개발하기

☕ Java

[Kotlin] Companion Object

2024. 2. 2. 10:44
반응형
  • 클래스 없이 정의 할 수 있는 객체다.
  • 싱글톤 역할을 한다.
  • 클래스 내부에 정의하지만 클래스 인스턴스와 별개로 존재한다.
  • 정적으로 접근이 가능하다.(상속 불가능)
  • 공통 메서드인 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
    '☕ Java' 카테고리의 다른 글
    • [Spring] DTO는 어디서 변환할까? (feat. DDD)
    • [Java] Apache Commons Library에서의 올바른 압축 해제 방법
    • Java Stream 사용법 ( 당신의 Stream은 안녕하십니까? )
    • 커스텀 어노테이션과 리플렉션
    loose
    loose
    불만하는 사람은 90명, 해결하는 사람은 9명, 리드하는 사람은 1명 음악과 낭만을 좋아합니다.
    hELLO. 티스토리 스킨을 소개합니다.
    제일 위로

    티스토리툴바