모던 안드로이드 - 코틀린과 JetPack 활용 #5 - data 클래스, 상속, 인터페이스 구현
data 클래스
- 데이터 저장 용도로 사용
- 서버 연동시 데이터 객체는 JSON 데이터로 보내거나 받을 수 있음
data class 클래스_이름(
1개 이상의 필드
)
예
data class Person(
val name: String,
var score: Int
)
상속
- 부모 클래스: class 키워드 앞에 open 키워드를 명시해야 자식 클래스 정의 가능
open class 부모클래스_이름 {
// ...
}
- 자식 클래스
- 주생성자 정의시 주의할 점
- 부모 클래스로부터 상속받을 필드는 파라메터로 기입하되 val, var 등의 키워드는 빼야 함
- 자바와 다른 점
- extends 키워드 대신 콜론(:) 사용
- 부모 클래스 이름만 쓰는 게 아니라 부모 클래스의 생성자 호출
- 주생성자 정의시 주의할 점
class 자식클래스_이름 : 부모클래스_생성자_호출 {
// 부모 클래스로부터 받은 메소드 오버라이드
// 필드, 메소드(함수) 추가 정의
}
인터페이스 구현
- 형식
class 자식클래스_이름 : 인터페이스 이름 {
// 인터페이스에 선언된 메소드 구현
// 필드, 메소드(함수) 정의
}
예
interface Drivable {
fun drive(distanceKm: Float)
}
class Car(val id: Int, var distanceKm: Float = 0.0f) : Drivable {
override fun drive(distanceKm: Float) {
this.distanceKm = this.distanceKm + distanceKm
}
override fun toString(): String {
return "{ id: ${id}, distanceKm: ${distanceKm} }"
}
}
fun main() {
val car = Car(1)
car.drive(12.3f)
println(car)
}
실행 결과
{ id: 1, distanceKm: 12.3 }
모던 안드로이드 - 코틀린과 JetPack 활용 (지난 내용)
Sort: Trending
[-]
successgr.with (74) 3 years ago