可以在两个地方写属性
1.构造器的参数列表
2.构造器内部
构造器的参数列表
1.val 表示不可以被修改的属性
2.var 表示可以被修改的属性
3.没有修饰符,不是对象的属性,无法访问
class Triangle(val a:Double,b:Double,c:Double) {
val d:Int=1
val e:Int=2
}
def main(args: Array[String]): Unit = {
val t=new Triangle(1,2,3)
//t.c无法访问
}
多个构造器
主构造器:一个,就是class
辅构造器:多个,名称就是this 在内部必须要调用一次主构造器
//主构造器
class User(val phone: String, var pwd: String) {
var email:String=""
var name:String=""
//辅构造器
def this(email:String,name:String,pwd:String){
//调用一次主构造器
this("",pwd)
//再对其他的属性赋值
this.name=name
this.email=email
}
//辅构造器
def this(email:String,name:String,pwd:String,phone:String){
//调用一次主构造器
this(phone,pwd)
//再对其他的属性赋值
this.name=name
this.email=email
}
def say():Unit={
println(s"我的信息如下:")
println(s"姓名:${name}")
println(s"手机号:${phone}")
println(s"邮箱:${email}")
println(s"密码:${pwd}")
}
}
def main(args: Array[String]): Unit = {
var u1 = new User("13617891234", "123456")
u1.say()
var u2 = new User("12345@qq.com", "小花", "123456")
u2.say()
var u3=new User("12345@qq.com","小花","123456","13617891234")
u3.say()
}