私は2つの配列と2つのクラスを持っています。私はユーザーの名前と年齢の出力を持つ必要がありますが、nullを返すために "名前"に問題があります。 「年齢」はうまくいきます。私のミスはどこですか?なぜ「名前を返すか」 nullが返されますか?
public class Lesson4OOP {
public static void main(String[] args) {
String[] names = {"Adam","Sara", "Mike" , "David"};
int[] ages = {21, 25, 34, 16};
User[] users = new User[names.length];
for(int i = 0; i<users.length; i++){
User u = new User();
u.setName(names[i]);
users[i] = u;
}
for(int j = 0; j<ages.length; j++){
User a = new User();
a.setAge(ages[j]);
users[j] = a;
}
System.out.println(users[3].getName());
System.out.println(users[3].getAge());
}
}
public class User {
String names;
int ages;
public void setName(String val){
names = val;
}
public String getName(){
return names;
}
public void setAge(int num){
ages = num;
}
public int getAge(){
return ages;
}
}
出力は次のようになります。あなたは2回目の反復でusers
配列内の既存のオブジェクトを上書きしているためである
ヌル
なぜ8人のユーザー、4人の名前、4人のユーザーを作成していますか? – John3136