Class 키워드 종류

Woozy9ucci·2023년 12월 7일
0

KOTLIN

목록 보기
4/4

여러가지 클래스

class 앞에 사용하여 다양한 형태의 클래스를 정의할 수 있다.

  • data class
    equals(), hashCode(), toString(), copy() 등 을 생성해준다. (자바에서 @Data와 유사한듯)
    기본 생성자에 1개 이상의 매개변수가 변수나 상수로 존재해야 한다. (var, val)

  • seald class
    상속받을 수 있는 자식 클래스들을 미리 정의할 수 있어 무분별한 상속을 방지할 수 있다.
    컴파일러가 생성할 수 있는 자식을 알 수 있기 때문에 다음과 같이 사용할 수 있다.
sealed class Vehicle(){
    class Bus : Vehicle()
    class Car : Vehicle()
    class Bicycle : Vehicle()

    fun getMaxSpeed(vehicle: Vehicle) : String{
        return when(vehicle){
            is Bus -> "120"
            is Car -> "240"
            is Bicycle -> "60"
        }
    }
}
}
  • object class
    Java의 static 대신 사용하는 키워드이다.
    compnion object class Util() {
    }
  • enum class
    열거형 클래스
  • open class
    Java에서는 class에 final이 붙지 않으면 모두 상속이 가능하다.
    Kotlin에서 class와 method는 기본적으로 final 이다.
    따라서 open 키워드를 이용해 상속을 허용한다.
    open class -> 상속을 가능하게 함
    open method -> 해당 method를 하위 클래스에서 override 할 수 있음

가시 제한자

  • public - 명시하지 않으면 기본적으로 public : 어디서나 접근 가능
  • internal - 같은 모듈 내부에서만 접근 가능
  • protected - private 이지만 상속을 받은 경우 타 모듈에서 접근 가능
  • private - 클래스 내부에서만 접근 가능
    (프로젝트 > 모듈 > 패키지 > 클래스)

    클래스 외에 하나의 코틀린 파일 top-level에 정의가 가능하다.
    범위가 파일과 모듈로 변하며 상속에 대한 속성인 protected는 사용 불가능하다.

https://mhwan.tistory.com/74

0개의 댓글