16 Scala 构造器基本使用

在scala中构建对象时也需要使用构造器,并且可以用多个构造器,
scala的构造器分为主构造器和辅助构造器两类, 构造器的作用时为了完成对新对象的初始化,构造器没有返回值。

每一个辅助构造器都必须把 主构造器的参数列表调用一遍(可以直接或间接)
辅助构造器,必须在第一行显式调用主构造器,方法名字为: this

基本使用:

// person有4个构造器,一个主构造器Person() 三个辅助构造器
class  Person2(){
  var name:String = _
  var age:Int = _

  def this(name:String) {
    this()  //直接调用主构造器
    this.name = name
  }

  def this(name:String,age:Int){
    this(name)  // 调用前一个辅助构造器
    this.age = age
  }

  // 辅助构造器
  def this(age:Int) {
    this("匿名") // 调用主构造器 def this(name:String)
    this.age = age
  }
}

构建对象

    val person2 = new Person2("tom") // 调用第一个辅助构造器
    val person3 = new Person2("jack",10) // // 调用第二个辅助构造器
    val person4= new Person2(10)  // 调用第三个构造器

高级属性:
给某个属性加入@BaenProperty注释后,会生成getXxx和SetXxx的方法,此方法与原属性不会冲突,可以共存

import scala.beans.BeanProperty

object BeanPropertDemo {
  def main(args: Array[String]): Unit = {
    val car = new Car
    car.name = "宝马"
    println("car.name="+car.name)

    // 使用@BeanProperty 自动生成的getxxx 和setxxx
    car.setName("奔驰")
    println("car.getName="+car.getName)
  }
}

class Car {
  @BeanProperty var name:String = null
}

Guess you like

Origin blog.csdn.net/u014644167/article/details/110009859