16. 오브젝트
2021. 5. 5. 12:42
클래스는 단지 인스턴스 객체를 만들기 위한 '틀'이기 때문에 내부 속성, 함수를 사용하기 위해서는 var a = Person("김돈우", 1998) 이와 같은 생성자를 통해 실체가 되는 인스턴스 객체를 만들어야 했다.
하지만 오브젝트는 단 하나의 객체만으로 공통적인 속성과 함수를 사용해야하는 코드에서는 굳이 class를 쓸 필요없이 object를 사용하면된다.
1. Singleton Pattern
- 클래스의 인스턴스를 단 하나만 만들어 사용하도록 하는 코딩 아키텍쳐 패턴
예시.
- 코드 어디서든 호출하여 호출한 횟수를 카운팅하거나 초기화할 수 있는 Counter Object
- Object는 인스턴스를 생성하지 않고 그 자체로 객체이기 때문에 생성자를 사용하지 않는다.
- 이후 코드 전체에서 공용으로 사용이 가능
2. Companion Object
- 클래스 안에도 오브젝트를 만들 수 있다.
- 인스턴스간의 공용으로 사용할 속성과 함수를 별도로 만드는 기능
- 기능적으로는 기존 언어에서 static 멤버와 유사하다.
- static 멤버 : 클래스 내부에서 별도의 영역에 고정적으로 존재하여 인스턴스를 생성하지 않아도 공용으로 사용가능한 속성이나 함수
- 서로 다른 인스턴스이지만 companion object 내에 있는 total을 공유하고 있어서 모든 인스턴스에서 사용 가능
'Kotlin 문법' 카테고리의 다른 글
18. 클래스의 다형성 (0) | 2021.05.11 |
---|---|
17. 익명객체와 옵저버 패턴 (0) | 2021.05.11 |
15. 스코프 함수 (0) | 2021.05.05 |
14. 고차함수와 람다함수 (0) | 2021.05.04 |
13. 변수, 함수, 클래스의 접근 범위(스코프)와 접근 제한자 (0) | 2021.05.04 |