class TestObject {
private var lastNum = 0
def newUniqueNum()={
lastNum += 1
lastNum
}
}
/**
* 单例对象:提供静态方法或字段
* Accounts.newUniqueNum()
* 构造器在对象第一次被使用时执行;对象不提供构造器参数
* 使用:
* ①存放工具函数或常量
* ②高效共享单个不变实例
* ③需要单例协调某服务时
*/
object Accounts{
private var lastNum = 0
def newUniqueNum()={
lastNum += 1
lastNum
}
}
/**
* 伴生对象:与类同名同源文件的对象
* 好处:既可以使用实例方法,又可以使用静态方法
* 其他:类可以和它的伴生对象互访私有特性
*/
object TestObject{
private var lastNum = 0
def newUniqueNum()={
lastNum += 1
lastNum
}
}
/**扩展对象:一个对象可以扩展一个类或若干特质,并拥有其所有特性
* 使用:extends
*/
/**定义apply()方法
* 一般在伴生对象中进行定义,以方便调用其类的方法
*/
/**应用程序对象:
*
*/
object Hello extends App{
println("hello")
}
private var lastNum = 0
def newUniqueNum()={
lastNum += 1
lastNum
}
}
/**
* 单例对象:提供静态方法或字段
* Accounts.newUniqueNum()
* 构造器在对象第一次被使用时执行;对象不提供构造器参数
* 使用:
* ①存放工具函数或常量
* ②高效共享单个不变实例
* ③需要单例协调某服务时
*/
object Accounts{
private var lastNum = 0
def newUniqueNum()={
lastNum += 1
lastNum
}
}
/**
* 伴生对象:与类同名同源文件的对象
* 好处:既可以使用实例方法,又可以使用静态方法
* 其他:类可以和它的伴生对象互访私有特性
*/
object TestObject{
private var lastNum = 0
def newUniqueNum()={
lastNum += 1
lastNum
}
}
/**扩展对象:一个对象可以扩展一个类或若干特质,并拥有其所有特性
* 使用:extends
*/
/**定义apply()方法
* 一般在伴生对象中进行定义,以方便调用其类的方法
*/
/**应用程序对象:
*
*/
object Hello extends App{
println("hello")
}