본문 바로가기

안드로이드앱 코딩_AndroidApp/안스_코틀린_쪼개기

파편17_Object and companion object

class(클래스)는 객체 지향 프로그래밍(Object Oriented Programming)의 개념에서 나온 것이다.

class(클래스)는 독립적으로 실행하는 틀을 제공한다.

 

참고: class(클래스)와 object(오브젝트) : https://fiftiesstudy.tistory.com/62

 

 

class(클래스)는 변수와 함수를 가지고 있다.

 

그 변수와 함수로 object(객체)를 만들 수 있다.

이렇게 만든 객체를 instance(인스턴스)라고 한다.

 

Object (오브젝트)

 

클래스에 객체를 여러 개 만들 수 있도록 허용하지만 만약 singleton(싱글톤)이 필요하다면 class 대신 키워드 object를 사용하여 선언할 수 있다. singleton은 instance를 한 개만 가지는 클래스이다.

 

로봇을 만드는 공장이 있다고 하자.

이 공장에는 파워별로 로봇을 만든다.

그리고 만든 로봇의 리스트를 가지고 있다.

이것을 object로 만들면 다음과 같다.

 

 

Companion objects (컴패년 오브젝트)

 

companion object는 클래스 안에 '친구 또는 동반자 객체'를 만들 때 사용한다.

companion object는 singleton이다.

 

 

이렇게 만들면 클래스 이름을 통해서 companion object의 멤버에 직접 접근할 수 있다.

추가로 companion object 이름을 적어서 '친구 객체'에 접근하는 것을 표시할 수도 있다.

또한 companion object로 만들면 코드를 시작한 후 바로 고정된(static) 메모리를 확보할 수 있다.

 

앞에서 만든 object를 companion object로 바꾸면 다음과 같이 표현할 수 있다.

 

 

Wraven...