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 <トレイト名>)* {
(<フィールド定義> | <メソッド定義>)*
}