Scala에서 object
는 특별한 의미를 갖는 예약어로, 주로 싱글톤 객체(Singleton Object)를 정의할 때 사용됩니다. Python과 비교하면 object
는 전역적으로 하나만 존재하는 객체를 정의하는 방법이라고 할 수 있습니다.
object
의 주요 특징:object
로 정의된 클래스는 해당 객체의 유일한 인스턴스를 갖습니다. 즉, 다른 곳에서 해당 객체를 사용할 때는 항상 동일한 인스턴스가 사용됩니다.class
와 달리 object
로 정의된 것은 생성자가 없으며, 인스턴스를 따로 만들 필요 없이 바로 사용할 수 있습니다.object
를 많이 사용합니다. 예를 들어 main
메서드를 포함하는 object
가 실행 시 진입점이 됩니다.object MySingleton {
def greet(name: String): String = s"Hello, $name"
}
위의 MySingleton
은 싱글톤 객체로, 언제든지 MySingleton.greet("Scala")
처럼 접근할 수 있습니다. 새로 인스턴스를 생성할 필요가 없죠.
object Main {
def main(args: Array[String]): Unit = {
println("Hello, Scala!")
}
}
Scala에서는 main
메서드가 포함된 object
가 프로그램 실행 시 시작점이 됩니다. Python의 if __name__ == "__main__":
부분과 비슷한 역할을 합니다.