object ConstructorTest {
def main(args:Array[String]){
var p = new Person //因为Person没有自己写的主构造器,那么当初始化时,只是执行类中的语句而已
var p2 = new Person()
var p3= new Person("zs")
var p4 = new Person("ls",20)
}
}
object Person{
private var i = 1
}
class Person{
private var name = ""
private var age =0
println("模拟主构造器中的执行语句"+Person.i)
Person.i += 1
def this(name:String){
this()
this.name = name
println(s"name=$name")
}
def this(name:String,age:Int){
this(name)
this.age = age
println(s"name=$name,age=$age")
}
}
打印结果:
模拟主构造器中的执行语句1
模拟主构造器中的执行语句2
模拟主构造器中的执行语句3
name=zs
模拟主构造器中的执行语句4
name=ls
name=ls,age=20