scala构造器

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

猜你喜欢

转载自my.oschina.net/u/2963604/blog/1806021
今日推荐