说明
scala 和java一样都可以拥有多个构造器,不过写法有些区别,上一节讲了scala主构造器,这一节来说辅助构造器. 核心要抓住下面两个点
- 辅助构造器方法名称统一为this,java所有的构造器和类名都是一致的,这是scala和java不一样的地方,用this的好处就是,类名修改的时候this不需要任何改动.
- 每一个辅助构造器的第一行,都要调用别的辅助构造器或者是主构造器.
例子
class Student {
private var name: String = _ //这里的_意思是scala会给当前变量赋予一个系统的初始值在这里是null
private var age: Int = _
def this(name:String){
this()
this.name = name
}
def this(name:String,age:Int){
this()
this.name = name
this.age = age
}
def this(age:Int){
this()
this.age = age
}
}
object Student {
def main(args: Array[String]): Unit = {
val std = new Student(20)
println(std.name+">>"+std.age)
}
}
|