複数のコンストラクタの内容に重複部分がある場合、コンストラクタからコンストラクタを呼び出せば手間が省けるというの学んだのですが
(例)
public class Main { public static void main(String[] args) { Hero h1 = new Hero("タナカ"); Hero h2 = new Hero(); System.out.println(h1.hp); System.out.println(h1.name); System.out.println(h2.hp); System.out.println(h2.name); } }
public class Hero { String name; int hp; Hero(String name) { this.hp = 100; this.name = name; } Hero() { this("スズキ"); } }
実行結果
100 タナカ 100 スズキ
もう一つ(3つ以上)インスタンスを生成して、同じ内容のコンストラクタ(hpは同じで名前はまた個別に与える)を利用したい場合どうしたらいいですか?
同じように
public class Main { public static void main(String[] args) { Hero h1 = new Hero("ミナト"); Hero h2 = new Hero(); Hero h3 = new Hero(); System.out.println(h1.hp); System.out.println(h1.name); System.out.println(h2.hp); System.out.println(h2.name); System.out.println(h3.name); } }
public class Hero { String name; int hp; Hero(String name) { this.hp = 100; this.name = name; } Hero() { this("スガワラ"); } Hero() { this("ヤマダ"); } }
と書こうと思ったのですが、”メソッド名が重複しています” とエラーメッセージが出ます。
でもメソッド名とクラス名が同じでないとコンストラクタと見なされないし、どうすれば良いのでしょうか?
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/11/20 08:05