クラスの具体的な定義方法 フィールド宣言/メソッド宣言
〈クラスの定義方法〉
クラス図
クラス名 (勇者) class Hero{
属性 (名前、HP) String name;
int hp;
操作 (戦う、走る) void attack( ){
}
void run( ){
}
属性(クラスブロック内に宣言された変数)のことをフィールドという。
〈フィールド宣言〉
属性を宣言するには、クラスブロックの中に変数宣言を記述する
ex. class Matango{
int hp;
int level=10;←レベルの初期値(最初に自動で入る値)を10に設定する
}
代入した値を書き換えることが出来ないようにするには
→フィールド宣言の先頭にfinalをつける
そうすることで、値を書き換えることが出来ない定数フィールドとなる
ex. final int LEVEL=10;
(大文字)
〈メソッド宣言〉
操作を宣言するには、次の順で記述する
[名前] 眠れという指示 sleep
[必要情報] なし
[結果] なし
[処理内容] 眠った後はHPが100に回復する
void sleep( ){
this.hp=100; //自分自身のインスタンスに100を代入する
System.out.println(this.name+"は、眠ってHPが100に回復した");
※ ↑thisは自分自身のインスタンス(勇者)に対するものであることを表す
メソッドの処理内容を具体的に記述する際は
変数宣言にthisをつける
これによって、ブロックの外側の変数をブロックの内側で指し示すことが出来る
(本来thisなしだと、ブロックの内側で宣言されているの変数しか指し示すことが出来ない)
ex. class Hero{
属性 int hp;
操作 void sleep( ){
this.hp=100;
↑ブロックの外側の属性hpを指す
}
〈名前のルール〉
クラス名(名詞) 単語の頭だけ大文字
フィールド名(名詞) 2つの単語を組み合わせる場合は続く単語の頭が大文字
メソッド名(動詞) フィールド名と一緒のルール ex.itemList