scala的构造函数使用方法

45 阅读1分钟

scala的构造函数使用方法

一、构造函数:主构造与辅助构造的协作

在面向对象编程中,构造函数是创建对象的 “入口”。Scala 支持主构造函数辅助构造函数,两者协作可灵活初始化对象。

以下是包含构造函数的 Student 类示例:

object dsadasdsa {
  class Student(var name: String, var age: Int) {
    println("Student构造函数被调用.....")

    // 辅助构造函数:仅接收name,age默认设为15
    def this(name: String) {
      this(name, 15)
    }

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

  def main(args: Array[String]): Unit = {
    // 调用主构造函数(传入name和age)
    val stu = new Student("小花", 18)
    stu.sayHello()  // 输出:我是小花,今年18

    // 调用辅助构造函数(仅传入name,age默认15)
    val stu1 = new Student("小明")
    stu1.sayHello()  // 输出:我是小明,今年15
  }
}
  • 主构造函数:直接在class定义时声明(class Student(var name: String, var age: Int)),同时完成成员变量nameage的定义。
  • 辅助构造函数:通过def this(...)定义,必须以this(主构造函数参数)的形式调用主构造函数,实现 “参数默认值” 的效果。
  • 执行逻辑:当用new创建对象时,主构造函数会自动执行(如println("Student构造函数被调用.....")会打印),辅助构造函数则按需调用。