1.主构造函数的参数
(1)构造器的参数列表
1. var 是可以修改的属性
2. val 是不可以修改的属性
3.而没有使用val或者var修饰的,不是属性
(不用val|var定义,在类外不可以访问 内部只读,不可改写)
代码:
object basic25 {
//可以在两个地方写属性
// 1.构造器的参数列表
// 2.构造器内部
// 构造器的参数列表:
//1.val 表示不可以被修改的属性
//2. var 表示可以被修改的属性
//3. 没有修改符,不是对象的属性,无法访问
class Triangle(val a:Double, var b:Double, var c:Double) {
val d:Int = 1
val e:Int = 2
}
def main(args: Array[String]): Unit = {
val t = new Triangle(1,2,3)
t.b = 2
//t,c 无法访问
}
}
2.辅助构造函数
(1)辅助构造器的作用
1.提供多种初始化方式:
辅助构造器允许类提供多种初始化选项,使得创建对象时更加灵活。
2.简化对象创建:
通过定义多个辅助构造器,您可以简化对象的创建过程,避免在主构造器中处理过多的参数。
3.调用主构造器:
辅助构造器可以通过 this 关键字调用主构造器,从而确保所有初始化
案列代码:
object basic26 {
/**
* 写过个构造器
*
* 构造器的作用:生产对象
* 支持多种创建对象的方式 ==== 在网站注册用户时,可以有多种注册方式:手机号,微信号,邮箱号
*
*/
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("123456789","02031119")
u1.say()
var u2 =new User("060203@qq.com","小花","123456")
u2.say()
var u3 =new User("060203@qq.com","小花","123456","02031119")
u3.say()
}
}