🤍 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)
}
}
}