0Pricing
Android Academy · 강의

클래스 및 객체

속성과 메서드가 있는 클래스를 정의하고 생성자를 사용하며 상속과 인터페이스를 이해하고 Kotlin다운 객체 지향 코드를 작성합니다.

클래스 및 객체은(는) CoddyKit의 무료 Android Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Android Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Android Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

클래스란 무엇인가요?

클래스는 객체를 만들기 위한 설계도입니다. 관련 데이터(속성)와 동작(함수)을 함께 묶습니다.

  • class Dog — 설계도를 정의합니다
  • val myDog = Dog() — 인스턴스(객체)를 만듭니다

예를 들어 User 클래스는 이름, 나이, 이메일을 저장할 수 있습니다.

클래스 정의하기

Kotlin 클래스는 간결한 기본 생성자 문법을 제공합니다.

class User(val name: String, var age: Int) {
    fun greet(): String {
        return "Hi, I'm $name and I'm $age years old."
    }
}

fun main() {
    val user = User("Alice", 28)
    println(user.name)     // Alice
    println(user.age)      // 28
    user.age = 29          // var can be changed
    println(user.greet())
}

데이터 클래스

데이터 클래스는 데이터를 저장하는 데 적합합니다. data 키워드를 추가하면 Kotlin이 다음 항목을 자동으로 생성합니다.

  • equals() / hashCode() — 값을 기준으로 비교합니다
  • toString() — 사람이 읽을 수 있는 출력을 제공합니다
  • copy() — 수정된 복사본을 만듭니다

데이터 클래스 예제

데이터 클래스는 모델 객체를 표현할 때 특히 유용합니다.

data class Product(val id: Int, val name: String, val price: Double)

fun main() {
    val p1 = Product(1, "Laptop", 999.99)
    val p2 = p1.copy(price = 899.99) // new copy with changed price

    println(p1)           // Product(id=1, name=Laptop, price=999.99)
    println(p2)           // Product(id=1, name=Laptop, price=899.99)
    println(p1 == p2)     // false (different price)
}

동반 객체

동반 객체는 특정 인스턴스가 아니라 클래스 자체에 속하는 멤버를 저장합니다. Java의 static과 비슷합니다.

클래스 이름을 통해 접근합니다: User.create()

동반 객체 예제

팩토리 메서드와 상수에는 동반 객체를 사용하세요.

class Counter {
    var count = 0

    fun increment() { count++ }

    companion object {
        const val MAX = 100

        fun create(): Counter = Counter()
    }
}

fun main() {
    val c = Counter.create()
    c.increment()
    c.increment()
    println(c.count)        // 2
    println(Counter.MAX)    // 100
}

상속

Kotlin 클래스는 기본적으로 final입니다(확장할 수 없음). 상속을 허용하려면 클래스를 open으로 표시하세요.

  • open class Animal — 확장할 수 있습니다
  • class Dog : Animal() — Animal을 확장합니다
  • override fun sound() — 부모 함수를 재정의합니다

상속 예제

간단한 클래스 계층 구조를 만들어 보세요.

open class Shape {
    open fun area(): Double = 0.0
}

class Circle(val radius: Double) : Shape() {
    override fun area(): Double = 3.14159 * radius * radius
}

class Rectangle(val w: Double, val h: Double) : Shape() {
    override fun area(): Double = w * h
}

fun main() {
    val shapes: List<Shape> = listOf(
        Circle(5.0),
        Rectangle(4.0, 3.0)
    )
    for (s in shapes) println("Area: ${s.area()}")
}

객체 선언

object 선언은 싱글턴을 만듭니다. 싱글턴은 인스턴스가 정확히 하나뿐인 클래스로, 처음 접근할 때 느리게 생성됩니다.

유틸리티, 관리자 또는 인스턴스가 하나만 있어야 하는 대상에 사용하세요.

빠른 확인

Kotlin의 data class가 자동으로 제공하는 기능은 무엇인가요?

복습: 클래스와 객체

Kotlin의 객체 지향 프로그래밍 구성 요소를 배웠습니다.

  • 기본 생성자와 멤버 함수를 사용하는 클래스
  • data class — equals, toString, copy를 자동으로 생성합니다
  • companion object — 클래스 수준의(static) 멤버입니다
  • 상속을 위한 open 클래스와 override
  • 싱글턴을 위한 object 선언

이제 실제 Android 앱을 만들 준비가 되었습니다!

자주 묻는 질문

“클래스 및 객체” 강의는 무료인가요?

네 — “클래스 및 객체” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Android Academy 강의 전체를 잠금 해제할 수 있습니다. Android Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“클래스 및 객체”에서 뭘 배우나요?

속성과 메서드가 있는 클래스를 정의하고 생성자를 사용하며 상속과 인터페이스를 이해하고 Kotlin다운 객체 지향 코드를 작성합니다. 브라우저에서 직접 실행하는 실습 코드로 Android Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Android Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Android Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“클래스 및 객체” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Android Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Android Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 널 안전성
  2. 클래스 및 객체
  3. 데이터 클래스 및 봉인 클래스
  4. 확장 함수 및 고차 함수
← Android Academy(으)로 돌아가기