2015-10-27 95 views
0

所以我有两个文件,这是第一个:将数组传递给方法

public class AnnualFuelUseTester { 
    public static void main(String[] args) { 
     AnnualFuelUse[] car = {new AnnualFuelUse(1, 1, 3023, 3070, 0.94, 3), 
      new AnnualFuelUse(2, 3, 3070, 4224, 24.04, 2.21), new AnnualFuelUse(3, 2, 4224, 4292, 1.48, 2.10)}; 
     car.showOutput(); 
    } 
} 

,第二个是:

public class AnnualFuelUse { 
    public void showOutput(AnnualFuelUse[] car) { 
     out.printf("%10s%10s%20s%20s%10s%20s%10s%10s%10s%n", "Fill Up", "Days", "Start Miles", "End Miles", 
       "Distance", "Gallons Used", "MPG", "Price", "Cost"); 
     for(AnnualFuelUse car1 : car) { 
      out.printf("%5d%5d%5d%5d%5d%5.2f%5.2f%5.2f%5.2f%n", car1.fillup, car1.days, car1.startMiles, 
        car1.endMiles, car1.distance, car1.gallonsUsed, car1.mpg, car1.price, car1.cost); 
     } 
     calcMinMax(car); 
     calcAnnualProjection(car); 
    } 

我有一对夫妇私有变量和另一对夫妇方法但我认为我展示的很清楚。出于某种原因,我得到一个错误,说无法解决方法showOutput()和tbh我不知道为什么,这些文件在同一目录中,一切都是公开的,车是AnnualFuelUse[]

+0

你觉得'car.showOutput();'应该做什么?你为什么这么认为? –

+0

'car.showOutput();'应该是'AnnualFuelUse c = new AnnualFuelUse(); c.showOutput(car);' – CrakC

+0

不幸的是,showOutput()不是静态的。这样你就需要一个AnnualFuelUse的实例,即使你只想打印给定的数组。所以使它成为静态的(当然也要传递'car'给它)Minor nit:通常我将collection和array变量复数(汽车) – eckes

回答

0

您需要迭代汽车并调用showOutput()。

+0

这就是我所关心的D:你能否解释为什么abit?showOutput应该采用一组AnnualFuelUse对象,是因为我必须从一个对象中调用它吗? – hydrozoah

+0

您可以使用AnualFuelUse :: showOutput(car)。像你想要的阵列。 – Justice