클래스 및 객체
속성과 메서드가 있는 클래스를 정의하고 생성자를 사용하며 상속과 인터페이스를 이해하고 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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.