2018-12-04 10:52:54
主构造器的参数列表放在类名后面,和类名交织在一起
val修饰的构造参数具有不可变性,var具有可变性
faceValue没有用val和var修饰,构造参数只能在本类访问,伴生对象也无法访问
faceValue没有用val和var修饰,默认就是val
class StructDemo(val name: String, var age: Int, faceValue: Int = 80) { var gender: String = _ // faceValue = 90 // 无法修改其值,默认是val def getFaceValue = faceValue // 辅助构造器 def this(name: String, age: Int, faceValue: Int, gender: String) { // 第一行必须先调用主构造器的字段 this(name, age, faceValue) this.gender = gender } } object StructDemo{ def main(args: Array[String]): Unit = { val sd = new StructDemo("xiaofang", 18, 90) println(sd.name) // println(sd.faceValue) // 无法访问,只有本类才能访问 println(sd.getFaceValue) println(sd.gender) } }