Fiz um programa usando interface, achei que estava fazendo tudo certo. Mas pelos comentários que recebi não foi implementado o método getCarbonFootPrint da interface (use @Override para garantir que você usou a assinatura correta).
Vou anexar meu código…
package carbonFootPrint;
public interface CarbonFootprint {
public double getCarbonFootprint(double footPrint);
}
package carbonFootPrint;
public class Bicycle implements CarbonFootprint{
public int marcha;
public int velocidade;
private double carbonFootPrint = 0.;
public Bicycle(int marcha, int velocidade) {
this.marcha = marcha;
this.velocidade = velocidade;
}
public void setMarcha(int marcha) {
this.marcha = marcha;
}
public void setVelocidade(int velocidade) {
this.velocidade = velocidade;
}
@Override
public double getCarbonFootPrint(carbonFootPrint) {
return carbonFootPrint;
}
@Override
public String toString() {
return "FootPrint = " + this.carbonFootPrint + "Kg CO2e";
}
}
package carbonFootPrint;
public class Building implements CarbonFootprint{
private int numPessoas;
private boolean usoDeEnergiaRenovavel;
private int numLampadas;
private boolean usoArCondicionado;
private double carbonFootPrint = 0;
public Building(int numPessoas, boolean usoDeEnergiaRenovavel, int numLampadas, boolean usoArCondicionado) {
this.numPessoas = numPessoas;
this.usoDeEnergiaRenovavel = usoDeEnergiaRenovavel;
this.numLampadas = numLampadas;
this.usoArCondicionado = usoArCondicionado;
}
public int getNumPessoas() {
return numPessoas;
}
public boolean isUsoDeEnergiaRenovavel() {
return usoDeEnergiaRenovavel;
}
public int getNumLampadas() {
return numLampadas;
}
public boolean isUsoArCondicionado() {
return usoArCondicionado;
}
public double getCarbonFootPrint() {
if(usoDeEnergiaRenovavel) {
carbonFootPrint = 0;
}
else {
double quantEnergiaEmCO2GastoPorUmaLampadaEm1Hora = 0.295;
carbonFootPrint = quantEnergiaEmCO2GastoPorUmaLampadaEm1Hora * getNumLampadas();
}
return carbonFootPrint;
}
@Override
public String toString() {
return "FootPrint = " + this.getCarbonFootPrint;
}
}
public double getCarbonFootPrint() {
if (getCombustivel() == "gasolina") {
if (getPotencia() <= 1.4) {
carbonFootPrint = 2.184; // Quantidade de carbono gasto em 1km para um carro com potencia
// menor igual a 1.4
} else {
if (getPotencia() >= 1.5 && getPotencia() <= 2.0) {
carbonFootPrint = 2.579; // Quantidade de carbono gasto em 1km para um carro com potencia
// na faixa de 1.5 - 2.0
} else {
if (getPotencia() > 2.0) {
carbonFootPrint = 3.571;// Quantidade de carbono gasto em 1km para um carro com potencia
// maior que 2.0
}
}
}
}
if (getCombustivel() == "etanol") {
if (getPotencia() <= 1.4) {
carbonFootPrint = 0.719; // Quantidade de carbono gasto em 1km para um carro com potencia
// menor igual a 1.4
} else {
if (getPotencia() >= 1.5 && getPotencia() <= 2.0) {
carbonFootPrint = 0.719; // Quantidade de carbono gasto em 1km para um carro com potencia
// na faixa de 1.5 - 2.0
} else {
if (getPotencia() > 2.0) {
carbonFootPrint = 0.719;// Quantidade de carbono gasto em 1km para um carro com potencia
// maior que 2.0
}
}
}
}
if (getCombustivel() == "diesel") {
carbonFootPrint = 3.091; //Gasto em CO2 por um veículo a óleo diesel em 1km
}
if (getCombustivel() == "GNV") {
carbonFootPrint = 3.128; //Gasto em CO2 por um veículo a GNV em 1km
}
return carbonFootPrint;
}
@Override
public String toString() {
return "FootPrint = " + this.getCarbonFootPrint();
}
}
package carbonFootPrint;
import java.util.*;
public class Principal {
public static void main(String[] args) {
ArrayList<Building> builds = new ArrayList<>();
ArrayList<Car> carros = new ArrayList<>();
ArrayList<Bicycle> bicycles = new ArrayList<>();
// Inicializando Building
builds.add(new Building(3, true, 10, true));
builds.add(new Building(5, false, 13, false));
// Inicializando Car
// Car(String combustivel, double potencia)
// Combustivel = "gasolina", "etanol", "diesel", "GNV"
// Potencia = 1.0 - 1.4, 1.5 - 2.0, > 2.0
carros.add(new Car("gasolina", 1.6));
carros.add(new Car("diesel", 1.0));
// Inicializando Bicycle
bicycles.add(new Bicycle(1, 15));
bicycles.add(new Bicycle(3, 45));
int i = 0;
for (Building Building: builds) {
i++;
System.out.println("Build" + i + " " + Building.getCarbonFootPrint() + " Kg CO2e");
}
i=0;
for (Car Car : carros) {
i++;
System.out.println("Car" + i + " " + Car.getCarbonFootPrint() + " Kg CO2e/km");
}
i=0;
for (Bicycle carbonFootPrint : bicycles) {
i++;
System.out.println("Bicycle" + i + " " + carbonFootPrint);
}
}
}