我已经在公共舱航班中创建了一个带有航班目的地的数组,现在我想在公共舱客户中使用一种方法打印出该数组。但是由于某种原因,该数组始终打印为null,而我也无法犯错。
主类:
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++;
}
}
}
(由于该程序的简化版本中看不到的原因,我无法将打印内容放入flights类中)
方法createExampleData之后,方法outpout的结果:
航班号:1
目的地:空
航班号:2
目的地:空
航班号:3
目的地:空
感谢您的帮助
答案 0 :(得分:3)
也许您没有在401 Unauthorized
类中执行函数createExampleData()
?
答案 1 :(得分:1)
您使用的是两个不同的flight
对象,一个是在main
中创建的,另一个是在customer
类中创建的,然后您对在main中创建的实例调用flight.createExampleData
output
方法使用customer
对象中的那个,因此该那个中的数组从未被赋予任何值,因此输出为null。
我目前的建议是将flight
中的customer
变量公开
public class customer{
public flight flight = new flight();
...
}
然后将main更改为
public class Main {
public static void main(String[] args) {
customer customer = new customer();
customer.flight.createExampleData();
customer.output();
}
}
一种更好的解决方案是改为在customer
上添加getFlight()方法,并将变量保持私有。
答案 2 :(得分:0)
flight.createExampleData();
调用此函数时,将执行Flight类中的createExampleData方法。
customer.output();
当您在Customer类中调用此输出方法时。
代码中的Flight和Customer类之间没有关系。因此,客户对象的输出方法不会知道Flight类的createExampleData中发生了什么。
您宁愿这样做
String [] flightDestinations = flight.createExampleData();
customer.output(flightDestinations);
您将必须在客户类中更改输出方法才能使用此字符串数组并打印其详细信息。另外,createExampleData的返回类型应为String [],以使其正常工作。