Scala 单例和伴生对象
Scala单例对象
单例对象是使用object关键字声明的对象,而不是class。不需要对象来调用在单例对象内声明的方法。
在Scala中,没有静态概念。因此,Scala创建了一个单例对象来为程序执行提供入口点。如果你不创建单例对象,你的代码将成功编译,但不会产生任何输出。在单例对象内声明的方法可以全局访问。 单例对象可以扩展类和trait。
Scala单例对象示例
object Singleton{
def main(args:Array[String]){
SingletonObject.hello() // No need to create object.
}
}
object SingletonObject{
def hello(){
println("Hello, This is Singleton Object")
}
}
输出:
Hello, This is Singleton Object
Scala 伴生对象
在Scala中,如果你有一个与单例对象同名的类,那么这个类被称为伴生类,而单例对象被称为伴生对象。
伴生类和它的伴生对象必须在同一个源文件中被定义。
Scala伴生对象示例
class ComapanionClass{
def hello(){
println("Hello, this is Companion Class.")
}
}
object CompanoinObject{
def main(args:Array[String]){
new ComapanionClass().hello()
println("And this is Companion Object.")
}
}
输出:
Hello, this is Companion Class.
And this is Companion Object.