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