Я создал массив с пунктами назначения рейсов на рейсах общего класса, и теперь я хочу распечатать массив, используя метод для клиентов открытого класса. Но по какой-то причине массив всегда печатается как ноль, и я не могу ошибиться.
Основной класс:
public class Main {
public static void main(String[] args) {
flight flight = new flight();
customer customer = new customer();
flight.createExampleData();
customer.output();
}
}
Рейсы общественного класса:
public class flight{
public String[] destination = new String[2000];
public void createExampleData(){
this.destination[1] = "Paris";
this.destination[2] = "Geneve";
this.destination[3] = "Florida";
}
}
Клиенты публичного класса:
public class customer{
flight flight = new flight();
public int i;
public void output() {
this.i=1;
while (i<4){
System.out.println("Flightnumber: " + this.i);
System.out.println("Destination: " + flight.destination[this.i]);
System.out.println("");
this.i++;
}
}
}
(Я не могу поместить печать в классе полетов по причинам, не видимым в этой простой версии программы)
Результат из метода, который выводится после создания метода Sample Data:
Номер рейса: 1
Назначение: ноль
Номер рейса: 2
Назначение: ноль
Номер рейса: 3
Назначение: ноль
Спасибо за помощь
2 ответа
Вы используете два разных flight
объекта, один из которых создан в main
, а другой - в вашем customer
классе, а затем вы вызываете flight.createExampleData
в экземпляре, созданном в main, но {{ Метод X4}} использует объект в объекте customer
, поэтому массиву этого объекта никогда не давались какие-либо значения, поэтому в выходных данных он равен нулю.
На данный момент я предлагаю сделать переменную flight
в customer
общедоступной.
public class customer{
public flight flight = new flight();
...
}
А затем измените основной на
public class Main {
public static void main(String[] args) {
customer customer = new customer();
customer.flight.createExampleData();
customer.output();
}
}
Лучшим решением может быть добавление метода getFlight () в customer
и сохранение переменной в секрете.
Может быть, вы не выполнили функцию createExampleData()
в своем классе customers
?
Похожие вопросы
Новые вопросы
java
Java - это язык программирования высокого уровня. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег редко используется отдельно и чаще всего используется вместе с [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] и [maven].