Scala Singleton和伴随对象
时间:2020-01-09 10:47:19 来源:igfitidea点击:
Scala单例和伴随对象
Scala类不能具有静态变量或者方法。相反,Scala类可以具有所谓的单例对象,有时也可以具有伴随对象。
使用关键字object声明一个单例对象。这是一个例子:
object Main { def sayHi() { println("Hi!"); } }
这个例子定义了一个叫做Main
的单例对象。我们可以像这样调用方法sayHi()
:
Main.sayHi();
注意如何在方法名称之前写入对象的全名。没有实例化任何对象。就像在Java中调用静态方法一样,只不过我们是在单例对象上调用该方法。
伴随对象
当单例对象的名称与类相同时,它称为伴随对象。必须在与该类相同的源文件中定义一个伴随对象。这是一个例子:
class Main { def sayHelloWorld() { println("Hello World"); } } object Main { def sayHi() { println("Hi!"); } }
在这个类中,我们既可以实例化Main并调用sayHelloWorld()
,也可以直接在伴随对象上调用sayHi()
方法,如下所示:
var aMain : Main = new Main(); aMain.sayHelloWorld(); Main.sayHi();