質問: java入門生です。 とある課題で、教えていただきたいことがあります。
回答: 問題に書かれていることが足りてないし、書いてない無駄な実装もしている。 問題に記載されていることを"過不足無く"実装することを心がける。 こういった問題をやる場合、いきなりプログラムを書いたらダメ。 コード先行だと、抜けが生じたり、無駄な実装を組み込んだりしてしまう。 先に問題文をコメントで書いて、それに合わせて実装する。 まずAttacker.javaを作ったら、問題文をそのままコメントで書く。 // Creatureクラスを継承して、 // 攻撃的な生命体を表す抽象クラス、Attackerクラスを作成してください。 // 1生命値と名前を設定できるコンストラクタを持つ。 (引数なしコンストラクタと引数ありコンストラクタの二つを持つ) // 2他の生命体を攻撃する抽象メソッド、void attack(引数はAttacker型インスタンス)メソッドを持つ。 次にプログラミングしやすい様に、コメントの文書や言い回しを変える。 // Creatureクラスを継承、抽象クラス「Attacker」を作成 // コンストラクタを二つ持つ、生命値と名前を設定 // 引数なしコンストラクタ // 引数ありコンストラクタ // 抽象メソッド、void attack(引数はAttacker型インスタンス)メソッド 最後にコメントに合わせて実装する。 // Creatureクラスを継承、抽象クラス「Attacker」を作成 abstract class Attacker extends Creature{ // コンストラクタを二つ持つ、生命値と名前を設定 // 引数なしコンストラクタ public Attacker() { super(); } // 引数ありコンストラクタ public Attacker(String n, int l) { super(n, l); } // 抽象メソッド、void attack(引数はAttacker型インスタンス)メソッド abstract void attack(Attacker enemy); } これで過不足の無い実装となる。 // q13213679678