본문 바로가기

앱/Kotlin

companion object= java의 static

1 개요 

객체지향 언어는 어떤 변수가 어떤 행동을 하는지 ? 아주 중요하게 여기는 언어 

상황에 따라 어떤 변수가 행동을 하던 그냥 기능만 되면 그만인 경우가 존재한다 

ex 로그인 api 호출 -> 어떤 서버 유틸이 하던 상관 없다. 연결만 잘 되면 그만 

이런 상황에서 java는 해당 메쏘드 .변수 를 static 으로 선언 

->자료형 (클래스 ) 자체가 해당 기능을 실행 하도록 지원 

 

 

2 코틀린에서 

- static 키워드가 없다 

- companion object 라는 영역을 만드록 -> 이 안에 만들어진 변수/ fun을 static 과 동일하게  처리해준다 

- 한클래스당 하나만 선언 가능하다 -> static 으로 쓰로 싶은 모든 변수/ 함수를 전부 companion obejct 영역안에 작성

 

3 유의 사항 

-static 메소드. 변수는 프로그램이 시작될때 '제일 먼저' 미리 생성해서 특정 영역에 모아두게 된다 

- 그 외의 일반 메쏘드 .변수는 해당 클래스가 '객체화 될 떄' 생성해서 사용하게 된다 

- 만들어지지 않은 변수/ 메쏘드는 가져다 사용할 수 없다 

-결론 :companion object 안에서 작성한 메쏘드는 이 안에서 만든 변수들만 사용할 수 있다 

 

 

 

' > Kotlin' 카테고리의 다른 글

Thread-비동기  (0) 2019.11.14
JSON  (0) 2019.11.14
OKHTTP-API 통신 활용 라이브러리  (0) 2019.11.14
API 통신  (0) 2019.11.14
DatePickerDialog-날짜 선택 기능  (0) 2019.11.07