KOTLIN 객체지향 프로그래밍(3)

도니·2022년 9월 22일
0

🤍 KOTLIN 객체지향 프로그래밍

🤍 KOTLIN의 클래스 종류

✅ 데이터 클래스

- 데이터 클래스는 data 키워드로 선언

- 데이터 클래스는 VO 클래스를 편리하게 이용할 수 있는 방법 제공

// 데이터 클래스 - 클래스 선언부 앞에 data 키워드 붙여준다.
class NonDataClass(val name:String, val email:String)

data class DataClass(val name:String, val email:String)

객체의 데이터를 비교하는 equals() 함수

- equals() 함수는 주 생성자에 선언한 멤버 변수의 데이터만 비교 대상으로 함

fun main() {
    val non1 = NonDataClass("sik", "a@naver.com")
    val non2 = NonDataClass("sik", "a@naver.com")

    val data1 = DataClass("sik", "a@naver.com")
    val data2 = DataClass("sik", "a@naver.com")

    // equals 비교
    println("""
        일반 클래스 equals 비교 : ${non1.equals(non2)}
        data 클래스 equals 비교 : ${data1.equals(data2)}
    """.trimIndent())

    // toString() -> 객체의 데이터를 반환
    println("""
        일반 클래스 toString() : ${non1.toString()}
        data 클래스 toString() : ${data1.toString()}
    """.trimIndent())
}

✅ 오브젝트 클래스

- 오브젝트 클래스는 익명 클래스를 만들 목적으로 사용

- 선언과 동시에 객체를 생성한다는 의미에서 object라는 키워드 사용

- 오브젝트 클래스의 타입은 object 뒤에 콜론(:)을 입력하고 그 뒤에서 클래스의 상위 또는 인터페이스 입력

open class Super3{
    open var data = 1
    open fun add(){
        println(1+1)
    }
}

// object:상위 또는 인터페이스를 명시해준다.
val obj = object:Super3() {
    override var data = 1
    override fun add(){
        println(1+1)
    }
}

✅ 컴패니언 클래스

- 컴패니언 클래스는 멤버 변수나 함수를 클래스 이름으로 접근하고자 할 때 사용

- companion 키워드 선언

// companion 클래스
// 맴버변수나 함수를 클래스 이름으로 접근 하고자 할 때 사용
class Companion{
    companion object{
        var compadata = 3
        fun some(){
            println(compadata)
        }
    }
}
profile
내가 보려고 만든 벨로그

0개의 댓글