Java 不管打印的最后一个对象是什么

Java 不管打印的最后一个对象是什么,java,Java,我有一个Person类,其中包含一些添加、删除和查看朋友的方法。出于某种原因,当我想查看我的朋友时,即使我认为我以正确的方式调用了正确的方法,最后一个人对象(即carl)也会被打印出来,而不管方法调用中的对象规格如何。有什么问题 代码如下: package person; public class Person { private static String name; private static String friends; public static void

我有一个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;
    }

}

您正在使用静态变量。请试试这个

package person;

public class Person {
    private  String name;
    private  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 void addFriend(Person friend) {

        friends = friends + friend.name + " ";
    }
    public void unFriend (Person nonFriend) {
        friends = friends.replace(nonFriend.name + " ", "");
    }
    public String getFriends () {
        return friends;
    }

}

您正在使用静态变量。请试试这个

package person;

public class Person {
    private  String name;
    private  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 void addFriend(Person friend) {

        friends = friends + friend.name + " ";
    }
    public void unFriend (Person nonFriend) {
        friends = friends.replace(nonFriend.name + " ", "");
    }
    public String getFriends () {
        return friends;
    }

}
制造

也可以通过删除
静态
来更改方法

   public void addFriend(Person friend) {

        friends = friends + friend.name + " ";
    }
    public void unFriend (Person nonFriend) {
        friends = friends.replace(nonFriend.name + " ", "");
    }
    public String getFriends () {
        return friends;
    }
制造

也可以通过删除
静态
来更改方法

   public void addFriend(Person friend) {

        friends = friends + friend.name + " ";
    }
    public void unFriend (Person nonFriend) {
        friends = friends.replace(nonFriend.name + " ", "");
    }
    public String getFriends () {
        return friends;
    }

因为它们是
静态的
请尝试删除它<代码>静态几乎意味着该类创建的所有实例都是相同的。删除除main之外的所有静态。静态字段只存在一次,是类对象的字段,可以执行
Person.name=“any”相关:因为它们是
静态的
尝试删除它<代码>静态
几乎意味着该类创建的所有实例都是相同的。删除除main之外的所有静态。静态字段只存在一次,是类对象的字段,可以执行
Person.name=“any”相关: