在scala中,this
是一個(gè)關(guān)鍵字,用于引用當(dāng)前對(duì)象??梢允褂?code>this關(guān)鍵字調(diào)用實(shí)例變量,方法,構(gòu)造函數(shù)。
在以下示例中,這用于調(diào)用實(shí)例變量和主要構(gòu)造方法。
class ThisExample{
var id:Int = 0
var name: String = ""
def this(id:Int, name:String){
this()
this.id = id
this.name = name
}
def show(){
println(id+" "+name)
}
}
object Demo{
def main(args:Array[String]){
var t = new ThisExample(1010,"Maxsu")
t.show()
}
}
將上面代碼保存到源文件:Demo.scala中,使用以下命令編譯并執(zhí)行代碼 -
D:\software\scala-2.12.3\bin>scalac Demo.scala
D:\software\scala-2.12.3\bin>scala Demo
1010 Maxsu
Scala構(gòu)造函數(shù)使用this關(guān)鍵字調(diào)用
在下面的例子中,使用this
關(guān)鍵字來調(diào)用構(gòu)造函數(shù)。它演示了如何從其他構(gòu)造函數(shù)調(diào)用構(gòu)造函數(shù)。必須確保this
必須放在構(gòu)造函數(shù)中的第一個(gè)語句,同時(shí)調(diào)用其他構(gòu)造函數(shù),否則編譯器會(huì)拋出錯(cuò)誤。
class Student(name:String){
def this(name:String, age:Int){
this(name)
println(name+" "+age)
}
}
object Demo{
def main(args:Array[String]){
var s = new Student("Maxsu",1000)
}
}
將上面代碼保存到源文件:Demo.scala中,使用以下命令編譯并執(zhí)行代碼 -
D:\software\scala-2.12.3\bin>scalac Demo.scala
D:\software\scala-2.12.3\bin>scala Demo
Maxsu 1010