object
object 是只有一个实例的类。它的定义与Java中的class类似,如:
// 单例对象
object AppEntry {
def main(args: Array[String]): Unit = {
print("Hello World!")
}
}
其中有main方法,它与脚本运行方式不同,需要先编译(scalac),后运行,与java类似:
App
运行object,除了使用main方法,还可以直接继承trait(类似于Java中的接口)--App:
object AppEntry1 extends App {
print("Hello World, by extends App!")
}
伴生对象
与类同名的对象称为伴生对象。相反,该类是对象的伴生类。伴生类或对象可以访问其伴随的私有成员。将伴生对象用于方法和值,这些方法和值不是特定于伴生类的实例。
import scala.math._
case class Circle(radius: Double) {
import Circle._
def area: Double = calculateArea(radius)
}
object Circle extends App {
private def calculateArea(radius: Double): Double = Pi * pow(radius, 2.0)
val circle1 = new Circle(5.0)
print(circle1.area)
}