Scala this關鍵字


在scala中,this是一個關鍵字,用於參照當前物件。可以使用this關鍵字呼叫範例變數,方法,建構函式。

Scala this範例

在以下範例中,這用於呼叫範例變數和主要構造方法。

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中,使用以下命令編譯並執行程式碼 -

D:\software\scala-2.12.3\bin>scalac Demo.scala
D:\software\scala-2.12.3\bin>scala Demo
1010 Maxsu

Scala建構函式使用this關鍵字呼叫

在下面的例子中,使用this關鍵字來呼叫建構函式。它演示了如何從其他建構函式呼叫建構函式。必須確保this必須放在建構函式中的第一個語句,同時呼叫其他建構函式,否則編譯器會丟擲錯誤。

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中,使用以下命令編譯並執行程式碼 -

D:\software\scala-2.12.3\bin>scalac Demo.scala
D:\software\scala-2.12.3\bin>scala Demo
Maxsu 1010