반응형
Kotlin Class 정의 및 활용 방법
클래스는 자바, 파이썬 등에 이미 익숙하다면 모두 같은 전통적인 클래스 개념을 채용했기 때문에 이번 강의는 특별히 어려움이 없을 것 같다.
클래스를 부르는 명칭은 다음과 같다.
class 클래스명 (클래스헤더) {
프로퍼티
...
}
1. 클래스 정의
파라미터를 정의하고, 타입을 선언하고, 초기값을 주는 방식등은 모두 함수 표현식과 동일하므로 아래의 예를통해서 한번에 이해될 수 있다. 단, 파라미터를 수정 가능/불가 변수 타입을 지정할 수 있는점이 함수와 차이일 것 같다.
예를들어, 실제 있을 수 있는 상황은 사용자의 처음 주어진 ID는 변경되면 안되고, 이메일 등의 주소는 언제든 바꿀 수 있기 때문에 val 와 var 를 조합해서 사용할 수 있다.
class Contact(val id: Int, var email: String = "abc@abc.com") {
val position: String = "developer"
}
만약 val 로 정의된 id를 업데이트하려고 하면 컴파일 에러가 발생한다.
2. 인스턴스 생성
Instance 생성시에 constructor는 명시적으로 정의해주지 않아도 Kotlin에서 자동으로 생성해준다.
val contact = Contact(1, "abc@abc.com")
println(contact)
--
Contact@4769b07b
참고로, contact 오브젝트를 그대로 프린트해보면 "클래스명@해시코드" 정보가 보여진다. 생성된 인스턴스는 동일한 해시코드가 유지된다.
3. 클래스 멤버 함수 생성
한 줄 생성 방식도 그대로 적용된다.
class Contact(val id: Int, var email: String = "abc@abc.com") {
val position = "developer"
fun printEmail() = println(email)
val printId = { println(id) }
}
fun main() {
val contact = Contact(1, "abc@abc.com")
println(contact)
contact.email = "google@gmail.com"
contact.printEmail()
contact.printId()
}
---
Contact@cc34f4d
google@gmail.com
1
반응형
'Kotlin' 카테고리의 다른 글
[Kotlin 강의] Null Safety 설명 (0) | 2025.01.22 |
---|---|
[Kotlin 강의] 데이터 저장에 매우 편리한 Kotlin Data Class (0) | 2025.01.22 |
[Kotlin 강의] Lambda 함수 Return Type 표현 방법 (0) | 2025.01.22 |
[Kotlin 강의] 함수 표현식 총정리 fun, lambda (0) | 2025.01.22 |
[Kotlin 강의] Range 사용법 (0) | 2025.01.22 |
댓글