このPersonクラスには、友人の追加、削除、表示のためのいくつかのメソッドがあります。何らかの理由で、友人を見たいときは、適切なメソッドを正しい方法で呼び出すと思っていますが、最後のPersonオブジェクト(carl)は、メソッド呼び出しのオブジェクト指定に関係なく印刷されます。何が問題ですか?ここ最後のオブジェクトは関係なく
はコードです:
package person;
public class Person {
private static String name;
private static String friends;
public static void main(String[] args) {
Person ted = new Person ("ted");
Person jim = new Person ("jim");
Person todd = new Person ("todd");
Person tom = new Person ("tom");
Person carl = new Person ("carl");
// apparently I'm making a mistake here...
jim.addFriend(zack);
System.out.println(jim.getFriends());
}
public Person (String aName) {
name = aName;
friends = "";
}
public static void addFriend(Person friend) {
friends = friends + friend.name + " ";
}
public static void unFriend (Person nonFriend) {
friends = friends.replace(nonFriend.name + " ", "");
}
public static String getFriends() {
return friends;
}
}
を除去することによって、方法を変更します。 'Static'は、そのクラスで作成されたすべてのインスタンスで同じことを意味します。 – 3kings
メイン以外のすべての静的を削除します。静的フィールドは一度だけ存在し、クラスオブジェクトのフィールドであり、 'Person.name =" any ";' –
ありがとう!それでした – zamzam