スッキリわかるJava入門 実践編を勉強中、「1.3.3 コレクションとequals()」でつまづいています。
equals()をオーバーライドしないと不具合になるよという内容ですが、Main.javaの10行目の「h1 = new Hero()」が何をしているのかがわかりません。
↓Main.java
java
1import java.util.*; 2 3public class Main { 4 public static void main(String[] args) { 5 List<Hero> list = new ArrayList<>(); 6 Hero h1 = new Hero(); 7 h1.name = "ミナト"; 8 list.add(h1); 9 System.out.println("要素数:" + list.size()); 10 h1 = new Hero(); 11 h1.name = "ミナト"; 12 list.remove(h1); 13 System.out.println("要素数:" + list.size()); 14 } 15}
↓Hero.java
java
1public class Hero { 2 public String name; 3}
新しくインスタンス情報をh1に代入(上書き?)しているということでしょうか。
それともインスタンス生成が行われ、h1というインスタンスが2つ存在しているということでしょうか。
インスタンス生成は「クラス名 インスタンス名= new クラス名();」という左辺にクラス名がつく書き方で覚えていたのでどういう処理なのかがわからずにいます。
どんな場面でこの書き方になるのでしょうか。
アドバイス頂けますと幸いです。
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/04/05 04:47
2022/04/05 07:38