1.在scala中经常可以看见var list = List(1,2,3)的这种用法即用类名来调用对象
2.实际上它是调用了scala的伴生对象的apply方法返回了一个对象来实现的
3.apply也支持方法的重载
package edu.lulu.oop.chapter6
object Test10 {
def main(args: Array[String]): Unit = {
// 在scala中经常可以看见var list = List(1,2,3)的这种用法即用类名来调用对象
// 实际上它是调用了scala的伴生对象的apply方法返回了一个对象来实现的
// apply也支持方法的重载
// 传统产生对象的方法
var a = new Animalb("小明")
// 使用apply
var b = Animalb();
var c = Animalb("小红")
println(a.name)
println(b.name)
println(c.name)
}
}
class Animalb(inName:String){
var name = inName
}
object Animalb{
def apply(inName: String): Animalb = new Animalb(inName)
def apply(): Animalb = {
return new Animalb("不知名的动物")
}
}
运行结果
小明
不知名的动物
小红Process finished with exit code 0