質問内容
現在スッキリわかるJava入門という本でJavaを勉強しています。
オブジェクト指向の単元である「コンストラクタで因数を追加情報として受け取る」で躓きました。
下記のコードを打ち込むとname がフィールではないというエラーが発生しました。
なので、フィールドにString name; を追加したらエラーは出なくなりました。
しかし、なぜString nameが必要なのか分かりません。
ミナトが引数として下記のnameに代入されるので、記載する必要はないと思いました。
なぜnameをフィールドに記述しないといけないのか教えてください。
Hero(String name) { this.hp = 100; this.name = name; } }
最初に試してみたソースコード
メインクラス
public class Main { public static void main(String[] args) { Hero h = new Hero("ミナト"); System.out.println(h.hp); System.out.println(h.name); } }
Heroクラス
public class Hero { int hp; Hero(String name) { this.hp = 100; this.name = name; } }
その後試したコード
メインクラス
public
1 public static void main(String[] args) { 2 Hero h = new Hero("ミナト"); 3 4 System.out.println(h.hp); 5 System.out.println(h.name); 6 } 7} 8コード
Heroクラス
public class Hero { String name; //この部分を追加 int hp; Hero(String name) { this.hp = 100; this.name = name; } } コード
回答3件
あなたの回答
tips
プレビュー