728x90
반응형
Data Class
- DataClass는 매개체의 데이터를 관리하는 용도로 사용하는 클래스이다.
- abstract, open, sealed, inner 클래스로 정의할 수 없다
- 반드시 주 생성자를 가지고 있어야 한다.
Data Class 함수
- Data Class 는 개발자의 개발 편리성을 위해 몇 가지 메서드가 자동으로 구현된다.
- equals : 객체가 가지고 있는 변수를 모두 비교하는 메서드
- hashCode : 객체를 구분하기 위한 고유한 정수값
- copy : 객체를 복제하는 메서드
- toString : 객체가 가지고 있는 변수의 값을 출력
- componentN : 객체 분해
data class TestClass2(var a1:Int, var a2:Int){
var a3:Int = 0
init {
println("TestClass2의 init")
}
constructor(a1:Int, a2:Int, a3:Int) : this(a1, a2){
this.a3 = a3
}
fun testMethod2(){
println("TestClass2의 testMethod2 입니다")
}
}
Sealed 클래스
- 열거형은 특정 값을 의미하는 상수들을 모아 관리하는 개념이라면 Sealed Class를 객체를 모아 관리하는 개념이다.
- 열거형의 경우 상수에 지정된 값은 절대로 변경이 불가능 하지만 Sealed Class를 객체를 관리하는 개념이므로 객체가 가지고 있는 변수에 값을 설정하여 지정된 값을 변경하는 것이 가능하다.
- 열거형 사용 시 상수가 의미하는 값을 수시로 변경하거나 다양한 형태로 사용하고자 할 때 사용한다.
Enum(열거형) 클래스
- 프로그램 개발 시 특정 그룹안의 구성 요소를 정의하는 값이 필요하고자 할 때 사용한다.
- 열거형은 정의한 단어 자체가 프로그램에서 사용하는 값이 된다.
Inner Class
중첩클래스
- 클래스안에 만드는 클래스를 중첩 클래스라고 부른다.
- 중첩 클래스에서는 각 클래스에 정의한 멤버를 사용할 수 있는가를 숙지해야 한다.
- 내부 클래스는 외부 클래스로부터 생성된 객체를 통해서만 객체 생성이 가능하다.
- 외부 클래스는 내부 클래스의 멤버를 자유롭게 사용할 수 없지만 내부 클래스는 외부 클래스의 멤버를 자유롭게 사용할 수 있다.
익명 중첩 클래스
- 이름이 없는 클래스를 익명 중첩 클래스라고 부른다.
- 인터페이스나 추상클래스를 사용할 때 이용한다.
- 인터페이스를 구현한 클래스나 추상 클래스를 상속받은 클래스를 만듬과 동시에 메서드를 Overriding하고 객체를 생성하는 것 까지 수행된다.
- 이름이 없으므로 다시는 객체를 생성할 수 없다.
728x90
반응형
'Language > Kotlin' 카테고리의 다른 글
Kotlin 자료형 검사하고 변환하기(?. !! ?:) (0) | 2022.01.21 |
---|---|
[Kotlin 객체지향 (4)] 프로퍼티(지연초기화, 위임)와 정적변수(Companion 객체, 최상위함수, object 객체) (0) | 2022.01.21 |
[Kotlin 객체지향 (2)] 추상클래스(Abstract Class)와 인터페이스(Interface) (0) | 2022.01.21 |
Kotlin 파일 입출력 (io/nio) (0) | 2022.01.13 |
Kotlin 컬렉션(List/Set/Map)과 확장함수/시퀀스 (0) | 2022.01.13 |