Reputation: 21
My program is:
public class CO2FootPrintTester {
public static void main(String[] args) {
//declaration of variables
int[] numberOfPeople = new int[5];
numberOfPeople[0] = 3;
numberOfPeople[1] = 6;
numberOfPeople[2] = 2;
numberOfPeople[3] = 10;
numberOfPeople[4] = 1;
double[] avgElecBill = new double[5];
avgElecBill[0] = 227.29;
avgElecBill[1] = 213.28;
avgElecBill[2] = 234.78;
avgElecBill[3] = 256.04;
avgElecBill[4] = 221.96;
for (int counter = 0; counter <= 5; counter++) {
int totalAverageElectricBill = 0;
totalAverageElectricBill += avgElecBill[counter];
int averageElectricBill = totalAverageElectricBill / 5;
}
boolean[] cans = new boolean[5];
cans[0] = true;
cans[1] = false;
cans[2] = true;
cans[3] = false;
cans[4] = true;
boolean[] glass = new boolean[5];
glass[0] = true;
glass[1] = false;
glass[2] = true;
glass[3] = false;
glass[4] = true;
boolean[] plastic = new boolean[5];
plastic[0] = true;
plastic[1] = true;
plastic[2] = false;
plastic[3] = false;
plastic[4] = true;
boolean[] paper = new boolean[5];
paper[0] = true;
paper[1] = false;
paper[2] = true;
paper[3] = false;
paper[4] = true;
int[] numLights = new int[5];
numLights[0] = 9;
numLights[1] = 3;
numLights[2] = 5;
numLights[3] = 1;
numLights[4] = 8;
for (int counter = 0; counter <= 5; counter++) {
int[] lightsTotal = new int[5];
lightsTotal[counter] += numLights[counter];
}
int[] gas = new int[5];
gas[0] = 2604;
gas[1] = 3029;
gas[2] = 1745;
gas[3] = 3590;
gas[4] = 1362;
for (int counter = 0; counter <= 5; counter++) {
int gasTotal = 0;
gasTotal += gas[counter];
}
double[] avgElecPrice = new double[5];
avgElecPrice[0] = .084;
avgElecPrice[1] = .081;
avgElecPrice[2] = .085;
avgElecPrice[3] = .084;
avgElecPrice[4] = .086;
for (int counter = 0; counter <= 5; counter++) {
int totalAverageElectricPrice = 0;
totalAverageElectricPrice += avgElecPrice[counter];
int averageElecPrice = 0;
averageElecPrice = totalAverageElectricPrice / 5;
}
double[] gasFootprint = new double[5];
double[] electricityEmissions = new double[5];
double[] emissionReductions = new double[5];
double[] grossWasteEmission = new double[5];
//call methods
for (int counter = 0; counter <= 4; counter++) {
gasFootprint[counter] = CO2Footprint.calculateGasEmissions(gas);
electricityEmissions[counter] = CO2Footprint.calculateElectricityEmissions(averageElectricBill, averageElecPrice);
emissionReductions[counter] = CO2Footprint.calcNetWasteReduction(cans, plastic, glass, paper, grossWasteEmission, numberOfPeople);
grossWasteEmission[counter] = CO2Footprint.calcGrossWasteEmission(numberOfPeople);
}
//print results
System.out.println("| Pounds of CO2 | Pounds of CO2 | |");
System.out.println("| Emmited from | Reduced from | |");
System.out.println("| Gas | Electricity | Waste | Recycling | New Bulbs | CO2 Footprint |");
}
}
I got problems on the following two lines:
gasFootprint[counter] = CO2Footprint.calculateGasEmissions(gas);
grossWasteEmission[counter] = CO2Footprint.calcGrossWasteEmission(numberOfPeople);
Line 1: It says required double
found void
.
Line 2: non-static method calcGrossWasteEmission(int[])
cannot be referenced from a static context. Required double
found void
.
I don't know why it says I require double
. I think it is already a double
.
Please help. Thanks in advance.
Upvotes: 0
Views: 114
Reputation: 66637
gasFootprint[counter] = CO2Footprint.calculateGasEmissions(gas);
It seems calculateGasEmissions
om CO2Footprint
is not static method.
If that is the case, then you need to instantiate CO2Footprint
class and call calculateGasEmissions
on that instance.
For example:
CO2Footprint co2Instance = new CO2Footprint();
co2Instance.calculateGasEmissions(gas);
Second issue:
Array index starts from 0, so, your for
loop will through ArrayIndexOutofBoundsException
.
for (int counter = 0; counter <=5; counter++)
should be:
for (int counter = 0; counter <5; counter++)
Upvotes: 1
Reputation: 11969
I would have to see the CO2Footprint class to know for sure, but I am guessing that calculateGassEmissions(gas) is a public void
method instead of a public double
Also I would have to make the assumption that calcGrossWasteEmission
is an instance method rather than a static.
Upvotes: 1
Reputation: 117587
for (int counter = 0; counter <=5; counter++)
This should be:
for (int counter = 0; counter < 5; counter++)
since there is no index 5 within an array of size 5 (i.e arrays start from 0).
Upvotes: 1