プログラムをコンパイルし、実行してみたら以下のような出力になりました。
Exception in thread "main" java.lang.NullPointerException
at FuelConsumptionCalculation.calculateFuelConsumption(FuelConsumptionCalculation.java:28) at FuelConsumptionCalculation.<init>(FuelConsumptionCalculation.java:20) at FuelConsumptionCalculation.main(FuelConsumptionCalculation.java:44)
以下が該当しているクラスのコードです。(該当箇所はコメントで書いてあります。)
class FuelConsumptionCalculation { private double fuelConsumptionOldRegulation = 0; private double fuelConsumptionNewRegulation = 0; private SimpleCar[] cars; FuelConsumptionCalculation() { DeluxeCar del_1 = new DeluxeCar("Honda",14.0f,10.5f); AdvancedCar ad = new AdvancedCar("Toyota",15.5f,9.5f); SimpleCar sim = new SimpleCar("Nissan",13.0f); DeluxeCar del_2 = new DeluxeCar("Van(Nissan)",10.5f,6.0f); SimpleCar[] cars = {del_1, ad, sim, del_2}; del_1.setReport(200, 7, 18, 8); ad.setReport(200, 7, 18); sim.setReport(200); del_2.setReport(200, 7, 18, 8); calculateFuelConsumption();//20行目 } private void calculateFuelConsumption() { for(int i = 0; i < cars.lemgth; i++){//28行目 fuelConsumptionOldRegulation += cars[i].calculateFuelConsumptionOldRegulations(); fuelConsumptionNewRegulation += cars[i].calculateFuelConsumptionNewRegulations(); } } float getFuelConsumptionOldRegulations() { return (float)fuelConsumptionOldRegulation; } float getFuelConsumptionNewRegulations() { return (float)fuelConsumptionNewRegulation; } public static void main(String[] args){ float difference; FuelConsumptionCalculation fcc = new FuelConsumptionCalculation();//44行目 difference = fcc.getFuelConsumptionOldRegulations() - fcc.getFuelConsumptionNewRegulations(); System.out.println("The difference is "+difference+"."); } }
正直、どこをどう直せばいいのか見当もつきません。検索してもさっぱりです。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。