본문 바로가기
Mobile Programming/Android

[Kotlin] 코틀린 기본 문법2 - 클래스

by 푸고배 2020. 7. 24.

1. 클래스


1-1. 클래스 선언

자바에서는 인스턴스 생성시 클래스 이름 앞에 new 키워드를 붙였지만 코틀린에서는 키워드를 적지 않아도 된다.


1-2. 생성자, 프로퍼티

코틀린에서 생성자는 constructor 또는 init 키워드를 사용하여 초기화 할 수 있다. 

init 블록 안의 코드는 클래스를 인스턴스화 할 때 가장 먼저 초기화된다.


프로퍼티는 함수 내부에 선언되어있는 변수로 사용 시 멤버에 직접 접근을 해야한다.

보통은 getter(접근자)와 setter(설정자)를 이용해 변수를 접근, 설정하나 코틀린에서는 접근자, 설정자 없이 프로퍼티에 접근이 가능하다.


1-3. 접근 제한자

      • public(생략 가능) : 전체 공개, default 값
      • private : 현재 파일 내부에서만 사용가능 
      • internal : 같은 모듈 내에서만 사용가능
      • protected : 상속받은 클래스에서 사용가능


1-4. 클래스의 상속

코틀린에서 클래스는 기본적으로 상속이 금지되어 있기 때문에 상속받기 위해서는 open 키워드를 사용해야한다. 


1-5. 내부 클래스

inner 키워드를 사용해서 내부 클래스를 선언하며, 내부 클래스는 외부 클래스 프로퍼티에 대한 참조를 가진다.


1-6. 추상 클래스

추상 클래스란 하나 이상의 추상 메서드를 가지는 클래스로, 추상 메서드란 선언만 되고 구현이 되지 않은 메서드를 말한다. 추상 클래스와 추상 메서드에는 abstract 키워드를 붙임으로써 구분한다. 추상 클래스는 직접 인스턴스화 할 수 없으며 다른 클래스가 이 추상 클래스를 상속하여 추상 메서드를 구현해야한다.


2. 인터페이스


인터페이스는 추상 클래스와 비슷하지만, 추상 클래스는 단일 상속만 가능한 반면에 인터페이스는 다중 상속이 가능하다는 특징이 있다. 주로 부모 클래스에서 선언한 메서드를 자식 클래스마다 다르게 구현하는데 사용한다.

2-1. 인터페이스의 선언

인터페이스는 abstract 키워드를 생략하여 사용이 가능하며, 추상 메서드 이외의 일반 메서드를 포함할 수 있다.

2-2. 인터페이스의 구현


참고 자료 :  오준석의 안드로이드 생존코딩(코틀린 편)

반응형

댓글