scala中的辅助构造器

3 阅读2分钟

(一)、主构造器函数的参数

1. var 是可以修改的属性

2. val 是不可以修改的属性

3.而没有使用val或者var修饰的,不是属性,不可在外部访问,不可改写。

(二)、this关键字链式风格

this在类内部表示当前对象,我们可以利用这个特点实现对象方法的链式调用。

(三)、辅助构造函数

1. 构造函数(构造器)的作用是什么? 创建对象。

2. 构造函数只能有一个吗? 可以有多个。可以有很多个,其他的叫辅助构造函数。

辅助构造器的方法名固定为this,其参数不能使用var或val修饰,且必须在第一行代码中直接或间接调用主构造器

辅助构造器的作用

1.提供多种初始化方式:

辅助构造器允许类提供多种初始化选项,使得创建对象时更加灵活。

2.简化对象创建:

通过定义多个辅助构造器,您可以简化对象的创建过程,避免在主构造器中处理过多的参数。

3.调用主构造器:

辅助构造器可以通过 this 关键字调用主构造器,从而确保所有初始化逻辑都集中在主构造器中。

object class01 {
   //class 类
  //Student 构造函数,用来创建对象,new的时候,就会自动调用一次
  //构造函数:
  // (1)主构造函数
  // (2)辅助构造函数
  //     特点:名字就叫this,它的代码第一行必须是调用主构造器。可以有多个
  class Student(var name:String,var age:Int) {
    println("Student构造函数被调用.....")

    //辅助构造函数1
    def this(name:String){
      this(name,15)
      println("辅助构造函数被调用....")
    }

    //辅助构造函数2
    def this(age:Int){
      this("未知",age)
      println("辅助构造函数被调用....")
    }

    def sayHello(): Unit = {
       println(s"我是${name},今年${age}")
     }
   }

  def main(args: Array[String]): Unit = {
    //实例化类的对象 stu
    //new的时候,就会自动调用一次构造函数
    val stu = new Student("小花",18)
    //调用对象的方法
    stu.sayHello()

    val stu1=new Student("小明")
    stu1.sayHello()

    val stu2=new Student(20)
    stu2.sayHello()
  }