1.单列对象
1.scala没有static关键字,object实现static的功能。单列对象本身是一个对象,是静态对象。
2.单例对象只有一个主构造器且没有参数。
3.主构造器在单例对象第一次被使用时调用。
object Persion{
val name:String="hahah"
}
2.伴生对象
1.当单例对象与一个同名的类在同一个源文件中时,称单例对象为类的伴生对象,称类为单例对象的伴生类。他们之间互相称作伴生类与伴生对象。
2.伴生类和伴生对象可以互相访问private修饰的成员。
class Persion{
val age = Persion.age //访问伴生对象的私有属性
}
object Persion{
private val age = 5
}
3.单例对象扩展类或特质
1.当单例对象扩展了类或特质后,其本身是一个对象,是一个扩展了基类或特质的类的对象。
4.单例对象的apply()方法
1.单例对象的apply()方法通常返回一个伴生类的新对象。
2.好处是嵌套调用时可以省略new关键字。
如:Array(Account(5.4),Account(5.5))
class Account(val dolar:Double){
}
object Account{
def apply(dolar:Double){
new Account(dolar)
}
}
var account1 = Account(5.5) //调用object的apply()方法
var account2 = new Account(5.5) //调用class的主构造器this(Double)
5.应用程序对象
object Hello extends App{
println(“Hello World!!!”)
}
6.枚举
以后再看