辅助构造函数
辅助构造器的方法名固定为this,其参数不能使用var或val修饰,且必须在第一行代码中直接或间接调用主构造器
//类是属性的集合
// Student,构造函数用来创建对象的
// 辅助构造函数,提供多种创建对象的方式
class Student(var name:String, var age:Int) {
println("*构造函数被调用...")
def sayHi(): Unit = {
println(s"我是${name},我今年${age}")
}
// 辅助构造函数
// (1)它的名字是this
// (2)它内部的第一句代码必须是调用 主构造函数 this("无名氏", 0)
def this() {
this("无名氏", 0)
println("*辅助构造函数1被调用...")
}
def this(name: String) = {
this(name, 0)
println("*辅助构造函数2被调用...")
}
}
object K06 {
def main(args: Array[String]): Unit = {
// 创建一个学生对象
// val stu1 = new Student("小花","18")
// 调用对象的方法
// stu1.sayHi()
// stu1.age = 19
// 调用对象的方法
// stu1.sayHi()
// 这里没有设置参数,它会调用辅助构造函数
// val stu2 = new Student()
// stu2.sayHi()
// 这里设置了一个参数,它会调用辅助构造函数
val stu3 = new Student("小明")
stu3.sayHi()
}
}