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 将时间的概念抹去,让外星人「...