컬렉션
- List, Set, Map 을 제공한다.
- 2종류가 있다.
- 불변 컬렉션 (Immutable) : 읽기 전용
- 가변 컬렉션 (Mutable) : 삽입, 수정, 삭제 같은 쓰기 작업 가능
- 컬랙션 생성
- 컬랙션 반복
데이터 클래스
- 데이터를 보관하거나, 전달하는 목적을 가진 객체
- equals(), hashCode(), toString(), componentN(), copy() : 자동 생성
data class Person(val name: String, val age: Int)
fun main() {
val person1 = Person(name = "tony", age = 12)
val person2 = Person(name = "tony", age = 12)
val person3 = person1.copy(name = "strange")
println(person1 == person2)
println(person1.hashCode())
println(person1.toString())
println(person1.component1())
println(person3)
}
싱글톤과 동반객체
- 싱글톤 : 클래스의 인스턴스를 단일 인스턴스로 제한하는 디자인 패턴
- 생성자를 private으로 숨긴다
- 단일 인스턴스를 반환하는 static getInstance() 를 제공한다
- 구현방법 : DCL, Enum 싱글톤, 이른 초기화, 지연 초기화
- 자바에서는 이른 초기화, 지연 초기화를 많이 쓴다.
- 코틀린 : 객체 선언 ⇒ 싱글톤 기본 지원
- object 키워드 사용
object Singleton {
val a = 1234
fun printA() = println(a)
}
fun main() {
println(Singleton.a)
Singleton.printA()
}
- static 키워드 대신 companion object 를 사용한다.