16 Scala 构造器基本使用

本文介绍了Scala中的构造器使用,包括主构造器和辅助构造器的概念及如何调用。通过示例展示了如何定义和使用多个构造器来初始化对象。同时提到了@BeanProperty注解在属性上的应用,该注解能自动生成getter和setter方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值