package com.wyh.scala.classData object Demo4Class { def main(args: Array[String]): Unit = { val stu = new Student("张三", 23) println(stu) } } //(_name: String, _age: Int) 默认构造函数的参数列表 class Student(_name: String, _age: Int) { /** * scala默认构造函数 * {} 所有代码都会被执行 * */ println("默认构造函数") //定义成员变量 val name: String = _name val age: Int = _age // _ 占位符 没有意义 var gender: String = _ var clazz: String = _ /** * * 重载构造函数 * */ def this(_name: String, _age: Int, gender: String) { //在重载构造函数第一行需要先调用默认构造函数 this(_name, _age) println("重载构造函数") //给成员变量赋值 this.gender = gender } //多重构造函数 def this(_name: String, _age: Int, gender: String, clazz: String) { //在重载构造函数第一行需要先调用默认构造函数 this(_name, _age, gender) println("重载构造函数") //给成员变量赋值 this.clazz = clazz } /** * 重写Object的toString方法 * * 方法没有参数的时候() 可以省略 * **/ override def toString: String = { //当最后一行作为返回值的时候return 可以省略 //return name + " " + age name + " " + age + " " + gender } }