코틀린 클래스 완벽 정리
코틀린에서 클래스는 객체지향 프로그래밍의 핵심 단위로,
속성과 동작(함수)을 하나로 묶어 표현한다.class 키워드를 사용하며, 상속·캡슐화·생성자 등을 직관적으로 다룰 수 있다.
클래스 기본 구조
예시
사용 예시
기본 생성자 (Primary Constructor)
기본 생성자는 클래스 선언부에 정의할 수 있다.
사용 예시
보조 생성자 (Secondary Constructor)
constructor 키워드를 사용해 추가 생성자를 정의할 수 있다.
여러 생성자 혼합 예시
init 블록
기본 생성자가 호출될 때 실행되는 초기화 블록이다.
프로퍼티(Property)
클래스의 속성은 var(변경 가능) 또는 val(불변)로 선언한다.
게터와 세터 (Getter / Setter)
코틀린은 자동으로 게터와 세터를 생성하지만, 직접 정의할 수도 있다.
상속 (Inheritance)
: 뒤에 상속받을 클래스를 지정한다.
코틀린의 클래스는 기본적으로 final이므로, 상속을 허용하려면 open 키워드를 붙여야 한다.
추상 클래스 (Abstract Class)
추상 클래스는 인스턴스화할 수 없으며, 상속을 통해 기능을 구현한다.
인터페이스 (Interface)
인터페이스는 클래스가 반드시 구현해야 하는 규칙을 정의한다.
데이터 클래스 (Data Class)
데이터 저장 목적의 클래스로, 자동으로 toString(), equals(), copy() 등을 생성한다.
사용 예시
싱글톤 (object 키워드)
object 키워드를 사용하면 단 하나의 인스턴스만 가지는 객체를 만들 수 있다.
사용 예시
내부 클래스 (Inner Class)와 중첩 클래스 (Nested Class)
-
Nested Class: 외부 클래스와 독립적으로 존재
-
Inner Class: 외부 클래스의 멤버에 접근 가능 (
inner키워드 필요)
클래스 요약 비교표
| 종류 | 키워드 | 특징 |
|---|---|---|
| 일반 클래스 | class |
기본적인 객체 구조 |
| 추상 클래스 | abstract class |
구현 강제, 인스턴스화 불가 |
| 데이터 클래스 | data class |
값 중심 클래스 |
| 싱글톤 | object |
하나의 인스턴스만 존재 |
| 인터페이스 | interface |
다중 구현 가능 |
| 내부 클래스 | inner class |
외부 클래스 접근 가능 |

답글 남기기