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 + "\t" + age
name + "\t" + age + "\t" + gender
}
}