Java, как мне объявить переменную экземпляра другого класса, если мне нужно передать переменную из конструктора

Я хочу создать экземпляр класса, для которого требуется валюта. конструктор, однако я получаю валюту, переданную в конструктор класса, в котором я их создаю.

public class Owner_Class {
    
    
    

    Controller items = new Controller();
    private Item[][] list = items.getItemList();
    private String currency;
    private coinCollector dispenser = new coinCollector(currency);
    public Owner_Class(String currency) {
        this.currency = currency;

    }

Всякий раз, когда я запускаю это, валюта просто равна нулю. Есть ли способ сделать это или мне нужно изменить, как это работает?

Инициализируйте dispenser в своем конструкторе, где у вас есть доступ к currency.

khelwood 10.04.2022 16:20

Почему Сканер? Удаляйте лишний код при размещении здесь.

Basil Bourque 10.04.2022 16:24

Извините @BasilBourque

Oo Harkin oO 10.04.2022 16:30

Всякий раз, когда я делаю это @khelwood, у меня больше нет доступа к этому в моих методах.

Oo Harkin oO 10.04.2022 16:30
Основы программирования на Java
Основы программирования на Java
Java - это высокоуровневый объектно-ориентированный язык программирования, основанный на классах.
Концепции JavaScript, которые вы должны знать как JS программист!
Концепции JavaScript, которые вы должны знать как JS программист!
JavaScript (Js) - это язык программирования, объединяющий HTML и CSS с одной из основных технологий Всемирной паутины. Более 97% веб-сайтов используют...
1
4
20
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Просто... перенесите инициализацию на конструктор. Java сначала запускает все «инициализирующие выражения», потом конструктор. Следовательно, в вашем текущем фрагменте кода currency начинается как null, затем выполняется new coinCollector(currency) (таким образом, передавая null), затем запускается ваш конструктор и устанавливает currency - слишком поздно.

Следовательно:

public class Owner_Class {
    Controller items = new Controller();
    private Item[][] list = items.getItemList();
    private Scanner input = new Scanner(System.in);
    private String currency;
    private coinCollector dispenser;

    public Owner_Class(String currency) {
        this.currency = currency;
        this.dispenser = new coinCollector(currency);
    }
}

Как мне получить доступ к объекту coinCollector из моих методов, если я сделаю это так

Oo Harkin oO 10.04.2022 16:39

неважно, мой плохой понял, что это работает, просто не прочитал его должным образом, спасибо!

Oo Harkin oO 10.04.2022 16:48

Другие вопросы по теме