본문 바로가기

Engineering/Kotlin3

Companion object Companion object object Companion object 를 알아보기 전에 object 를 먼저 살펴보면, kotlin 에서는 object 키워드를 통해 객체를 별다른 정의 없이 싱글톤으로 구현을 지원한다. 즉, JAVA 에서는 클래스 내부에서 Static 객체로 한번만 할당해주는 코드가 Kotlin 에서는 class 키워드 대신 object 키워드를 사용 함으로서 마치 static 객체에 할당 하는 것처럼 자동으로 생성 해주는 것이다. object ServiceRepo { val allService = arrayListOf() fun getService() { // ... } } // 호출부 ServiceRepo.getService() ServiceRepo.allService.add(S.. 2023. 5. 18.
Constructor Constructor 개요 일반적으로 객체 지향 언어에서 사용하는 생성자는 클래스 내에서 객체를 생성하고 초기화 하기 위한 특별한 메서드를 의미한다. 객체의 기본 상태를 설정하는 공간이며, 일반적인 함수와는 다른 방식으로 클래스 객체가 인자를 전달받도록 한다. 즉, 인스턴스가 생성 될 때 디폴트로 호출되는 ‘인스턴스 초기화 메서드’ 라고 이해하면 쉽다. 따라서 인스턴스 변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행 되어야 할 루틴을 위해서도 사용 되기도 한다. Kotlin 의 Primary constructor Kotlin 의 클래스는 하나의 Primary constructor와 복수의 Secondary constructor를 가질 수 있다. Primary constructor는 cons.. 2023. 5. 16.
Interface VS Abstract? java, c# 등 OOP 기반 언어를 주로 사용할때 가장 중요한 것들 중 하나가 클래스, 메서드 간 상속 구조, 오버라이딩, 오버로딩을 적절히 활용하여 SW 아키텍처를 효율적으로 만드는 것이다. Kotlin은 Java 와 매우 흡사한 구조를 가지고 있지만 엄연히 용법은 다르다. Kotlin 기반의 Interface , abstract 의 specific 한 구현 예제를 언어 적응 차원에서복기 해본다. Interface 개요 SW 아키텍처에서 의존성 역전을 통한 아키텍처 경계 설정을 위해 자주 사용되는 패턴으로, 클래스, 함수, 변수의 틀을 지정한다. 즉, 구현 부분이 없게 틀을 만들어 여러 종류의 비슷한 형태의 오브젝트들을 만들 수 있도록 frame을 잡아 주는 역할을 한다. 단, 인터페이스의 생성자는.. 2023. 5. 14.