Как изменить значения переменных с помощью методов? - PullRequest
0 голосов
/ 03 января 2019

У меня проблемы с увеличением значения переменных моего экземпляра.Я попытался сделать метод, чтобы на каждое домашнее животное, которое я покупал, он прибавил столько, сколько у меня уже было.Но когда я печатаю переменную собак, он говорит 0, хотя я добавил 2. Я был бы признателен за любую помощь.Спасибо!

открытый класс myStuff static int dogs;static int cats;

public static void main(String[] args) {
    myStuff.buy(dogs, 2);
    System.out.println(dogs);

}
public static void buy(int pet, int howMany) {
    pet = pet + howMany;
}

}

Ответы [ 2 ]

0 голосов
/ 03 января 2019

В Java параметры метода передаются по значению (что означает, что значение dogs в вашем случае передается на первом месте, но никогда не затрагивается). Объекты, однако, управляются ссылкой. Итак, если вы хотите увеличить количество домашних животных, вы можете использовать класс Pet со значением count

public class Pet {
    private int count;

    public Pet(int count) {
        this.count = count;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }
}

Если вы затем передадите экземпляр Pet в вашу функцию buy и увеличите счет с помощью setCount, значение будет сохранено.

0 голосов
/ 03 января 2019

вы не можете сделать это в Java, так как это передача по значению

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...