かんたんなsetter/getterのつくりかた
Hero.java 4行目
青文字swordの上で右クリック
→ソース
→セッターゲッター生成
でかんたんにつくれる
なお自動で生成されたやつにthisがついていたりついてなかったりするが
エクリプスさんが判断してこれはthisいるな/いらんなと付けたりするらしい
教科書にはみんなついてる
ようだ
クラスに対するアクセス制御
教科書p394
かるくよめばいい
メンバのアクセス制御と同様に、
クラスに対するアクセス制御できるらしい
厳しい↑
package private(何も書かないとこれ)
public
ゆるい↓
もしメソッドがpublicでも、それが属するクラスがpackage privateだと呼び出せない
基本的にファイル名=クラス名だが、
非publicだとその原則が無視できるらしいよ
ひとつのファイルの中に複数のクラスを記述することが出来るらしい
ひとつのファイルの中に「publicクラスは」ひとつ、なのだ
じゃあInnメソッドでHPがマイナスにされてたじゃないですか、
あれをできないようにするには?
hpにマイナスの値が設定されました!で中断するようなのかいてみましょう
→こうかな
public void setHp(int hp) {
if( hp<0) {//マイナスの値は受け付けない
throw new IllegalArgumentException
("hpの値がマイナスだ!処理を止めますよ");
}
this.hp = hp;
}
よしよし怒られた
p400
テストプログラムはドライブにある
Main.javaの
21行めあたり
h.setSword(s);
の//をはずす
Hero.javaの
36行あたり
public void attack(Matango m){
System.out.println(this.name + "の攻撃!");
System.out.println("お化けキノコ" + m.suffix + "に" +
sword.damage + "ポイントのダメージを与えた");
m.hp -= sword.damage;
もコメントアウト外す
なおエラーがあるコードではげったせったの自動生成はできないっぽい
コメントアウトしてからやるとよい