package day03
/**
* 构造器、辅助构造器
* 主构造器的参数列表要放到类名的后面,和类名放在一起
* val修饰的构造参数具有不可变性,var修饰的构造参数具有可变性
* 此时声明的faceValue:Int 只能在本类调用,伴生对象也无法调用
* faceValue 虽然没有用val或者var修饰,默认是val
* @param name
* @param age
* @param faceValue
*/
class StructDemo(val name:String, var age: Int,faceValue:Int = 90) {
var gender: String = _
def getFaceValue():Int = {
// faceValue = 100 //此时值是不可更改的,默认是val修饰的
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 s = new StructDemo("ningning",26,98)
val s = new StructDemo("lulu",26,98,"女")
// s.name = "tingting" //无法赋值,因为是用val修饰的
s.age = 27
println(s.name)
println(s.age)
// println(s.faceValue)
// val faceValue = s.getFaceValue()
println(s.getFaceValue())
println(s.gender)
}
}
构造器、辅助构造器
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 我们的语言、文字,都与时间紧密联系在一起。在《你一生的故事》中,Ted Chiang 将时间的概念抹去,让外星人「...