Kotlin의 클래스
Kotlin에서 클래스는 객체 지향 프로그래밍의 핵심 요소입니다.
이 문서에서는 Kotlin 클래스의 다양한 측면을 상세히 살펴보겠습니다.
클래스 선언 (Class Declaration)
Kotlin에서 클래스는 class
키워드를 사용하여 선언합니다:
class Person { /*...*/ }
클래스 선언은 클래스 이름, 헤더(타입 매개변수, 주 생성자 등을 지정), 그리고 중괄호로 둘러싸인 본문으로 구성됩니다. 헤더와 본문은 선택사항이며, 본문이 없는 경우 중괄호를 생략할 수 있습니다:
class Empty
생성자 (Constructors)
Kotlin 클래스는 주 생성자와 하나 이상의 보조 생성자를 가질 수 있습니다.
주 생성자 (Primary Constructor)
주 생성자는 클래스 헤더의 일부로 선언됩니다:
class Person constructor(firstName: String) { /*...*/ }
주 생성자에 애노테이션이나 가시성 변경자가 없다면 constructor
키워드를 생략할 수 있습니다:
class Person(firstName: String) { /*...*/ }
주 생성자는 클래스 인스턴스와 그 속성을 초기화합니다. 초기화 로직은 init
블록 안에 작성합니다:
class InitOrderDemo(name: String) {
val firstProperty = "First property: $name".also(::println)
init {
println("First initializer block that prints $name")
}
val secondProperty = "Second property: ${name.length}".also(::println)
init {
println("Second initializer block that prints ${name.length}")
}
}
주 생성자 매개변수는 프로퍼티 초기화에도 사용할 수 있습니다:
class Customer(name: String) {
val customerKey = name.uppercase()
}
Kotlin은 주 생성자에서 프로퍼티를 선언하고 초기화하는 간결한 구문을 제공합니다:
class Person(val firstName: String, val lastName: String, var age: Int)
보조 생성자 (Secondary Constructors)
클래스는 constructor
키워드로 시작하는 보조 생성자를 선언할 수 있습니다:
class Person(val pets: MutableList<Pet> = mutableListOf())
class Pet {
constructor(owner: Person) {
owner.pets.add(this) // 이 펫을 주인의 펫 목록에 추가
}
}
클래스에 주 생성자가 있다면, 각 보조 생성자는 주 생성자에 직접 또는 다른 보조 생성자를 통해 간접적으로 위임해야 합니다:
class Person(val name: String) {
val children: MutableList<Person> = mutableListOf()
constructor(name: String, parent: Person) : this(name) {
parent.children.add(this)
}
}
클래스 멤버 (Class Members)
Kotlin 클래스는 다음과 같은 멤버를 포함할 수 있습니다:
- 생성자와 초기화 블록
- 함수
- 프로퍼티
- 중첩 및 내부 클래스
- 객체 선언
상속 (Inheritance)
Kotlin에서 클래스는 서로 파생되어 상속 계층을 형성할 수 있습니다. 상속에 대한 자세한 내용은 Kotlin 상속 문서를 참조하세요.
추상 클래스 (Abstract Classes)
클래스와 그 멤버들은 abstract
로 선언될 수 있습니다. 추상 멤버는 해당 클래스에서 구현을 가지지 않습니다:
abstract class Polygon {
abstract fun draw()
}
class Rectangle : Polygon() {
override fun draw() {
// 사각형 그리기
}
}
동반 객체 (Companion Objects)
클래스 인스턴스 없이 호출할 수 있지만 클래스 내부에 접근해야 하는 함수가 필요한 경우(예: 팩토리 메소드), 해당 클래스 안에 객체 선언의 멤버로 작성할 수 있습니다. 특히 동반 객체를 선언하면 클래스 이름만으로 그 멤버에 접근할 수 있습니다.
Kotlin의 클래스는 객체 지향 프로그래밍의 강력한 도구입니다. 주 생성자와 보조 생성자, 초기화 블록, 프로퍼티 선언의 간결한 구문 등 Kotlin만의 특징을 이해하고 활용하면 더 효율적이고 표현력 있는 코드를 작성할 수 있습니다. 클래스의 다양한 기능을 적절히 사용하여 코드의 구조를 개선하고 재사용성을 높일 수 있습니다.
이 블로그의 다른글 :
2024.08.10 - [개발&프로그래밍] - [Kotlin] 조건문과 반복문
[Kotlin] 조건문과 반복문
Kotlin의 조건문과 반복문Kotlin은 다양한 조건문과 반복문을 제공하여 프로그래머가 효율적이고 읽기 쉬운 코드를 작성할 수 있게 합니다. 이 가이드에서는 Kotlin의 주요 제어 흐름 구조를 살펴보
observerlife.tistory.com
2024.08.10 - [개발&프로그래밍] - [kotlin] 타입 체크와 캐스팅
[kotlin] 타입 체크와 캐스팅
Kotlin의 타입 체크와 캐스팅Kotlin에서 타입 체크와 캐스팅은 객체 지향 프로그래밍의 핵심 기능입니다. 이 가이드에서는 Kotlin의 타입 체크와 캐스팅 기능을 모든 코드 예제와 함께 상세히 살펴보
observerlife.tistory.com
2024.08.10 - [개발&프로그래밍] - [Kotlin] 숫자 타입과 연산 가이드
[Kotlin] 숫자 타입과 연산 가이드
Kotlin의 숫자 타입과 연산 가이드Kotlin에서 숫자를 다루는 방법과 관련된 다양한 개념을 살펴봅니다. 정수 타입 (Integer types)Kotlin은 숫자를 표현하기 위한 내장 타입 세트를 제공합니다. 정수의
observerlife.tistory.com
2024.08.10 - [개발&프로그래밍] - [kotlin] 코딩 컨벤션 - lambdas, Trailing commas
[kotlin] 코딩 컨벤션 - lambdas, Trailing commas
Kotlin 코딩 컨벤션 가이드Kotlin을 사용하여 더 깔끔하고 일관된 코드를 작성하기 위한 고급 코딩 컨벤션을 소개합니다.아래글은 공식 홈페이지를 참고하였습니다.https://kotlinlang.org/docs/coding-convent
observerlife.tistory.com
2024.08.09 - [개발&프로그래밍] - [kotlin] 코딩 컨벤션 (coding conventions)
[kotlin] 코딩 컨벤션 (coding conventions)
Kotlin 코딩 컨벤션 가이드 Kotlin 프로그래밍 언어를 사용할 때 따라야 할 코딩 컨벤션에 대한 종합적인 가이드입니다.이 가이드라인을 따르면 코드의 일관성과 가독성을 높일 수 있습니다. 이
observerlife.tistory.com
2024.08.09 - [개발&프로그래밍] - [kotlin] 자주 사용되는 관용구(idiom) 모음
[kotlin] 자주 사용되는 관용구(idiom) 모음
이 글은 Kotlin 프로그래밍 언어에서 자주 사용되는 관용구(idiom)들의 모음입니다.각 관용구에 대한 설명과 예제 코드를 함께 설명합니다.공식 홈페이지 kotlinlang.org의 내용을 참고합
observerlife.tistory.com
2024.08.07 - [개발&프로그래밍] - [kotlin] 입문시 알아야 할 8가지 핵심 문법
[kotlin] 입문시 알아야 할 8가지 핵심 문법
Kotlin의 주요 문법 특징들을 간략히 정리한 것입니다.각 항목은 Kotlin의 간결하고 표현력 있는 코드 작성을 지원하는 특징들을 보여줍니다. 아래 문서는 kotlinlang.org 공식 홈페이지를 참조합니다.
observerlife.tistory.com
2024.08.07 - [개발&프로그래밍] - [kotlin] 입문시 알아야 할 7가지 핵심 문법
[kotlin] 입문시 알아야 할 7가지 핵심 문법
Kotlin의 기본적인 문법 요소들을 간략하게 설명하고 있습니다.각 항목은 Kotlin 프로그래밍의 기초를 이해하는 데 중요한 개념들을 포함하고 있습니다. 아래 문서는 kotlinlang.org 공식 홈페이지를
observerlife.tistory.com
Kotlin, 클래스, 생성자, 객체지향프로그래밍, 상속, 추상클래스, 동반객체, 초기화블록, 프로퍼티, 안드로이드개발, 서버개발, 코틀린문법, 객체생성, 멤버함수, 캡슐화
'개발&프로그래밍' 카테고리의 다른 글
[kotlin] 프로퍼티(Properties) (0) | 2024.08.13 |
---|---|
[kotlin] 상속(inheritance) (0) | 2024.08.13 |
[kotlin] Exceptions (0) | 2024.08.12 |
[kotlin] Return 과 점프 표현식 (0) | 2024.08.12 |
[Kotlin] 조건문과 반복문 (0) | 2024.08.11 |
댓글