1. 程式人生 > >第四章 類和物件

第四章 類和物件

  • 類、欄位和方法

    • 類定義中可以放置欄位和方法;
    • 方法用關鍵字 def 定義;
    • 欄位保留物件的狀態或資料;
    • Scala裡把成員公開的方法是不顯示地指定任何訪問修飾符。即,Public是Scala的預設訪問級別。
    • Scala裡方法引數的一個重要特徵是他們都是val的,不能在函式中對引數進行重新賦值。
  • 分號推斷規則 除非以下任一情況出現,否則行尾被認為是一個分號

    • 疑問行由一個不能合法作為語句結尾的字結束,如句點或中綴操作符;
    • 下一行開始於不能作為語句開始的詞;
    • 行結束於括號或方括號內部,因為這些符號不可能容納多個語句;
  • Singleton(單例)物件

    • 除了用關鍵字 object 替換了關鍵字 class 以外,單例物件的定義看上去與型別一一致;
    • 如果單例物件與某個類共享同一個名稱時,它就被稱為是這個單例物件的伴生物件;
    • 類和其伴生物件必須定義在同一個原始檔裡;
    • 類被稱之為這個單例物件的伴生類;
    • 兩者之間可以互相訪問私有成員;
    • 單例物件在第一次被訪問時才會被初始化;
  • Scala程式

    • 任何帶有合適簽名的main方法的單例物件都可以作為程式的入口點;
    • Scala的基本編譯器:scalac;
    • 如果檔案是以定義結尾的,則不是scala指令碼,指令碼必須以結果表示式結束;
    • Scala釋出包中包含一個叫做fsc的Scala編譯器後臺,可以將檔案列表傳送給後臺程式,由其完成編譯,使用fsc只需在首次執行時等待Java執行環境的啟動;
  • Application特質
    • 該特質可以減少一些輸入的工作,單例物件 extends App 就可以當作程式入口執行,而不需要寫main方法;
    • 原因:特質Application聲明瞭帶有合適簽名的main方法,並被單例物件繼承,使之可以像Scala程式那樣;