构造器的默认值

代码如下:
object Base38 {
class Student(var name:String,var age:Int,var gender:String = "男",var nav:String = "汉族") {
def say(): Unit = {
println(s"${name},${age},${gender},${nav}")
}
}
def main(args: Array[String]): Unit = {
var s1 = new Student("小明",19)
s1.say()
var s2 = new Student("小花",18,"女","回族")
s2.say()
}
}
结果:
小明,19,男,汉族
小花,18,女,回族
构造器中的参数的类型
1.val定义的属性,不能修改
2.var定义的属性,可以修改
3.没有val,也没有var的,不是对象的属性,不能使用语法来访问
代码如下:
object Base38 {
class Student(var name:String,var age:Int,var gender:String = "男",var nav:String = "汉族") {
def say(): Unit = {
println(s"${name},${age},${gender},${nav}")
}
}
def main(args: Array[String]): Unit = {
var s1 = new Student("小明",19)
s1.say()
var s2 = new Student("小花",18,"女","回族")
s2.say()
}
}
结果:
小明,19,男,汉族
小花,18,女,回族
辅助构造器及调用

代码如下:
class Register(val name: String, var email: String, var pwd: String, var phone: String) {
println("主构造器被调用")
def this(phone: String, pwd: String) {
this("随机用户xxxxxx", "xxxxx@qq.com", pwd, phone)
println("辅助构造器被调用")
}
def this(email: String, pwd: String, name: String) {
this(name, email, pwd, "1360000000")
println("辅助构造器被调用")
}
def say(): Unit = {
println(s"姓名: ${name},邮箱: ${email}, 密码: ${pwd}, 手机号: ${phone}")
}
}
def main(args: Array[String]): Unit = {
val r1 = new Register("13617885566", "123456")
val r2 = new Register("9456651@qq.com", "123456", "小明")
r1.say()
r2.say()
}