kotlin에서 object 키워드가 의미하는 바는
클래스를 정의함과 동시에 객체를 생성하는 것이다.
객체 선언(object)을 통해 싱글톤을 언어 자체에서 기본 지원해준다.
특징
객체 선언은 싱글턴 패턴을 쉽게 구현할 수 있게 해준다.
싱글턴 패턴 ?
이런 클래스가 필요한 경우 객체 선언을 통해 쉽게 구현할 수 있다.
object Score1 {
private val students = arrayListOf<Student2>()
fun printScores() {
for (student in students) {
println("${student.name} score : ${student.score} ${student.group}")
}
}
fun addStudents(arrayList: ArrayList<Student2>) {
students.addAll(arrayList)
}
}
class Student2(val name: String, var score: Int, var group: String)
fun main() {
val students = arrayListOf(Student2("Jim", 97, "SunFlower"),
Student2("Sarah", 100, "Lilly"))
Score1.addStudents(students)
Score1.printScores()
}
위와 같이 class 키워드 대신 object를 사용하면 객체가 단 하나 만들어지는 클래스를 만들 수 있고, 그 객체를 사용할 땐 클래스의 이름을 통하여 사용할 수 있다.