본문 바로가기
개발&프로그래밍

[kotlin] 클래스

by 재아군 2024. 8. 12.

 

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

댓글