본문 바로가기
Kotlin

[Kotlin 강의] Class 쉬운 설명

by 뷰티풀스택 2025. 1. 22.
반응형

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

 

 

 

반응형

댓글