학습
Kotlin 기본 클래스 및 객체
Kotlin 기본 클래스 및 객체 — 초급
기본 클래스 및 객체
1. 도입 (왜 배워야 하는가)
Kotlin은 현대 애플리케이션 개발에서 널리 사용되는 프로그래밍 언어입니다. 클래스와 객체는 객체 지향 프로그래밍(OOP)의 핵심 개념으로, 이를 통해 코드의 재사용성과 유지보수성을 높일 수 있습니다. 실무에서 복잡한 시스템을 효율적으로 설계하고 구현하기 위해서는 이 개념들을 이해하는 것이 필수적입니다. 만약 클래스와 객체에 대한 이해가 부족하다면, 코드의 구조가 불명확해지고, 협업 시 다른 개발자와의 소통이 어려워질 수 있습니다. 또한, 버그 발생 시 문제를 파악하고 수정하는 데 어려움을 겪을 수 있습니다.
2. 핵심 개념 설명
- 클래스: 객체의 설계도라고 생각할 수 있습니다. 클래스는 객체의 속성과 행동을 정의하는 청사진입니다. 예를 들어, '자동차'라는 클래스는 자동차의 속성(색상, 모델)과 행동(운전하기, 멈추기)을 포함합니다.
- 객체: 클래스의 인스턴스입니다. 자동차 클래스에서 '내 차'라는 객체는 특정 색상과 모델을 가진 실제 자동차를 나타냅니다.
관련 용어 정리
| 용어 | 설명 |
|---|---|
| 클래스 | 객체의 속성과 행동을 정의하는 설계도 |
| 객체 | 클래스로부터 생성된 실제 인스턴스 |
| 속성 | 객체가 갖는 특성 (예: 색상, 모델) |
| 행동 | 객체가 수행할 수 있는 작업 (예: 주행하기) |
3. 기본 코드 예제
아래는 간단한 자동차 클래스를 정의하는 코드입니다.
// 자동차 클래스를 정의합니다.
class Car(val color: String, val model: String) {
// 자동차가 주행하는 행동을 정의합니다.
fun drive() {
println("$model($color) 자동차가 주행 중입니다.")
}
}
// Car 클래스의 인스턴스를 생성합니다.
val myCar = Car("빨강", "스포츠카")
// 주행 메서드를 호출합니다.
myCar.drive()
실행 결과
스포츠카(빨강) 자동차가 주행 중입니다.
코드 한 줄씩 동작 설명
class Car(val color: String, val model: String) { ... }: Car라는 클래스를 정의하고, 색상과 모델을 속성으로 가집니다.fun drive() { ... }: Car 클래스 내에 자동차가 주행하는 행동을 정의하는 메서드를 생성합니다.val myCar = Car("빨강", "스포츠카"): Car 클래스의 인스턴스인 myCar를 생성하고, 빨강 색상과 스포츠카 모델을 지정합니다.myCar.drive(): myCar 객체의 drive 메서드를 호출하여 주행 상태를 출력합니다.- 잘못된 코드:
- 올바른 코드:
- 잘못된 코드:
- 올바른 코드:
- 클래스와 객체는 객체 지향 프로그래밍의 기본 개념으로, 코드의 구조와 재사용성을 높입니다.
- 클래스는 객체의 설계도, 객체는 그 설계도에 따라 생성된 실제 인스턴스입니다.
- 실생활 비유를 통해 쉽게 이해할 수 있으며, 코드 예제를 통해 활용 방법을 익힐 수 있습니다.
- 상속 및 다형성
- 인터페이스와 추상 클래스
- 데이터 클래스와 코틀린의 고급 기능
4. 실전 활용 예제
예제 1: 쇼핑몰에서 장바구니 구현
장바구니에서 상품을 담고, 총 가격을 계산하는 기능을 구현합니다.
class Product(val name: String, val price: Double)
class ShoppingCart {
private val items = mutableListOf<Product>()
fun addProduct(product: Product) {
items.add(product)
}
fun totalPrice(): Double {
return items.sumOf { it.price }
}
}
// 사용 예
val cart = ShoppingCart()
cart.addProduct(Product("사과", 1000.0))
cart.addProduct(Product("바나나", 800.0))
println("총 가격: ${cart.totalPrice()} 원")
예제 2: 학생 관리 시스템
학생 정보를 관리하는 클래스를 만들어 보겠습니다.
class Student(val name: String, val age: Int)
class StudentManager {
private val students = mutableListOf<Student>()
fun addStudent(student: Student) {
students.add(student)
}
fun displayStudents() {
for (student in students) {
println("이름: ${student.name}, 나이: ${student.age}")
}
}
}
// 사용 예
val manager = StudentManager()
manager.addStudent(Student("홍길동", 20))
manager.addStudent(Student("김철수", 22))
manager.displayStudents()
5. 흔한 실수와 주의사항
실수 1: 클래스 속성 접근
class Car {
val color: String
fun drive() {
println(color) // 초기화되지 않은 속성 접근
}
}
class Car(val color: String) {
fun drive() {
println(color) // 올바르게 초기화된 속성 접근
}
}
실수 2: 객체 생성 시 매개변수 누락
val myCar = Car("빨강") // 두 번째 매개변수 누락
val myCar = Car("빨강", "스포츠카") // 모든 매개변수를 제공
6. 정리
다음에 학습하면 좋은 주제: