Scala中类的构造方法
1.通过构造方法创建对象
Scala中的创建对象的语法和Java是类似的
val | var 对象名 [:类型] = new 类型()
var user : User = new User()
2.构造方法
2.1 Scala中类的构造方法
object Scala09_Object_Instance {
def main(args: Array[String]): Unit = {
//创建对象
val user = new User()//调用类的构造方法
}
class User(){
// Scala中类的主题内容其实就是类的构造方法体
// 构建对象的时候,构造方法就会执行,同时类的主体内容也会执行
println("123")
}
}
- 通过new关键字来创建对象的方式 都是通过构造方法来创建的
- Scala中构造方法并不和java中一样,java中构造方法是类中的一个和类名相同的方法;而Scala是在声明类的时候,在类名后面可以增加小括号,小括号里的参数就是构造参数列表
类的主体内容其实就是类的构造方法体 - 创建对象的时候,构造方法就会执行,即类的主体内容会执行
class User(){
//todo 3.Scala中类的主题内容其实就是类的构造方法体
// 构建对象的时候,构造方法就会执行,同时类的主体内容也会执行
println("123")
}
2.2 主构造方法和辅助构造方法
object Scala09_Object_Instance {
def main(args: Array[String]): Unit = {
//创建对象
val user = new User(张三)//调用类的构造方法
}
//主构造函数
class User(){
//辅助构造方法:this
println("xxxxxxx")
def this(name:String)={
this() //必须直接或者间接调用主构造方法 this就是主构造方法
println("yyyyyyyy")
}
def this(name:String,age:Int)={
this(name)
println("zzzzzzzz")
}
}
}
xxxxxxx
yyyyyyyy
-
当Scala中需要多个构造方法的声明,需要提供类的辅助构造方法
Scala中类的构造方法分为2类:主构造方法
、辅助构造方法
-
主构造方法就是类名后面 小括号中参数列表 + 类体
主构造方法用于创建对象,完成类的初始化操作 -
辅助构造方法用于辅助主构造方法创建对象 辅助构造方法完成功能补充;
辅助构造方法不能独立使用,必须直接或者间接调用主构造方法
主构造方法完成类的初始化,辅助构造方法完成对类的补充 -
主构造方法并不是一定为无参的;反而辅助构造方法可能是无参的
class Parent(name:String){
println("111111")
def this(){
this("xxxx")
println("222")
}
println("333333333")
}
- 构造器调用其他另外的构造器,要求被调用构造器必须提前声明
如下这种写法就是错误的
//主构造函数
class User(){
//辅助构造方法:this
println("xxxxxxx")
def this(name:String,age:Int)={
this(name)
println("zzzzzzzz")
}
def this(name:String)={
this() //必须直接或者间接调用主构造方法 this就是主构造方法
println("yyyyyyyy")
}
}