class

class

  • scala における class とは,object を作るための設計図のこと.
  • class はメソッド,値,変数,型,object,trait,class を持つ.

記法

  • ` ` … アルファベットや記号の並び
  • ( ) … グルーピング
  • < > … 何らかの構文要素
  • * … その要素が0回以上現れる
  • + … その要素が1回以上現れる
  • ? … その要素が0回または1回現れる
  • A | B … A と B のどちらでも良い
  • ... … 同じパターンで出現する

定義

クラス定義

class <クラス名> '(' (<引数名1> : <引数型1>, <引数名2>: <引数型2> ...)? ')' {
  (<フィールド定義> | <メソッド定義> )*
}

メソッド定義

メソッド: class や object 内の操作のこと.

(private([this | <パッケージ名>])? | protected([<パッケージ名>])?)? def <メソッド名> '('
  (<引数名> : 引数型 (, 引数名 : <引数型>)*)?
')': <返り値型> = <本体>

or ブロック式を使ったメソッド

(private([this | <パッケージ名>])? | protected([<パッケージ名>])?)? def <メソッド名> '('
  (<引数名> : 引数型 (, 引数名 : <引数型>)*)?
')': <返り値型> = {
  (<式> (; | <改行>)?)*
}

or 複数の引数メソッドを持つメソッド

(private([this | <パッケージ名>])? | protected([<パッケージ名>])?)? def <メソッド名> '('
  (<引数名> : 引数型 (, 引数名 : <引数型>)*)?
')'( '('
  (<引数名> : 引数型 (, 引数名 : <引数型>)*)?
')' )* : <返り値型> = <本体式>

フィールド定義

フィールド: class や object 内の変数や定数や値のこと.

(private([this | <パッケージ名>])? | protected([<パッケージ名>])?)? (val | var) <フィールド名>: <フィールド型> = <初期化式>

抽象メンバー定義

メンバー: フィールドやメソッドのこと.

(private([this | <パッケージ名>])? | protected([<パッケージ名>])?)? def <メソッド名> '('
  (<引数名> : 引数型 (, 引数名 : <引数型>)*)?
')': <返り値型>

継承定義

class <クラス名> <クラス引数> (extends <スーパークラス>)? (with <トレイト名>)* {
  (<フィールド定義> | <メソッド定義>)*
}