💌 다양한 코틀린 클래스

📌 데이터 클래스

💜 데이터 클래스

  • data
  • 주생성자 선언해야 함, 생성자의 매개변수는 최소 하나 이상
  • 모든 주 생성자의 매개변수는 var/val로 선언
  • 데이터 클래스는 abstract, open, sealed, inner 등 예약어 추가할 수 없음
  • equals() / haseCode() : 같은 데이터 클래스 객체끼리 비교
  • toString() : 데이터를 문자열로 반환
  • componentN() : 프로퍼티 값을 가져옴, 데이터 분해 선언
  • copy() : 개체를 복사해 다른 객체를 만듦

📌 Enum 클래스

💜 열거형 클래스 선언 및 이용

  • enum : 열거형 타입 제공
    프로퍼티 - name:문자열, original:인덱스번호
    함수 - value() , valueOf()
enum class Direction{
    NORTH, SOUTH, WEST, EAST
}
fun main (args: Array<String>){
   val direction: Direction = Direction.NORTH

    println("${direction.name}... ${direction.ordinal}")

    val directions: Array<Direction> = Direction.values()
    directions.forEach { t-> println(t.name) }

    val direction1 = Direction.valueOf("WEST")
    println("${direction1.name}...${direction1.ordinal}")
}

🖥
NORTH... 0
NORTH
SOUTH
WEST
EAST
WEST...2

💜 익명 클래스 이용

enum class Direction{
    NORTH{
    			// 익명 클래스 정의 부분
    }
}

📌 Sealed 클래스

  • sealed : 몇몇 타입을 묶기(밀봉)위한 용도

📌 Nested 클래스

  • inner

📌 Object 클래스

  • 익명 클래스 정의
val obj1 = object{

}

object 클래스명 { }

💜 companion 예약어

  • 자바의 static 같은 효과
  • object와 함께 사용되어 object 클래스의 멤버를 object 클래스명 사용하지 않고 이용하게 해줌
profile
Android Developer..+ iOS 슬쩍 🌱 ✏️끄적끄적,,개인 기록용 👩🏻‍💻

0개의 댓글