1. 程式人生 > >scala 隨筆(2) scala建構函式 this

scala 隨筆(2) scala建構函式 this

scala裡面的方法定義先於執行體載入,所以下面問題是沒有問題的 ,println(f) 先於定義
object Constructor {

  class Test{
    println(f);
def f = {
      "I am here!!!"
}
  }

  def main(args: Array[String]): Unit = {
    new Test;
}
}
構造器是構造新的物件,首先初始化類中的定義的變數和方法,然後進入類體,之上往下載入類如:
  1. class Constructor2{
  2. var x =0
  3. def f()={
  4. x=12
  5. }
  6. f()
  7. }
  8. object Constructor2{
  9. def main(args:Array[String
    ]):Unit={
  10. var constructor2 = new Constructor2
  11. println(constructor2.x)
  12. }
  13. }
輔助構造器 this,通過this 可以過載構造器
  1. package test
  2. class Constructor2(var a:Int,val b:String="tiantian"){
  3. var x =0
  4. def f()={
  5. x=12
  6. }
  7. def this(c:Int){
  8. this(c,"tom")
  9. }
  10. }
  11. object Constructor2{
  12. def main(args:Array[String]):Unit={
  13. var constructor2 = new Constructor2(12)
  14. println(constructor2.a)
  15. println(constructor2.b)
  16. }
  17. }
output: 12 tom Process finished with exit code 0