Ola!
Fazendo minhas brincadeiras aqui para reforcar as licoes, me deparei com uma duvida. Como manter a relacao entre dois atributos static ao longo de adicoes de novos objetos? Eu quero que o totalCost seja atualizado de forma a ser reduzido dos funds.
Mas o que obtenho nao eh o esperado.
No exemplo abaixo.
public class MyHangar {
String name;
String role;
double cost;
static double totalCost;
static double funds = 300;
public MyHangar(String name, String role, double cost) {
this.name = name;
this.role = role;
this.cost = cost;
totalCost += this.cost;
funds -= this.totalCost;
System.out.println("Adding new ship to hangar. Name: " + name + ". Role: " + role + ". Cost: " + cost);
System.out.println("Your total operational cost is: " + totalCost + ". Your funds left:" + funds + ".");
System.out.println();
}
}
public class Ships {
public static void main(String[] args) {
MyHangar ship1 = new MyHangar("Hammerhead", "Patrol ship", 100);
MyHangar ship3 = new MyHangar("Caterpillar", "Trading", 50);
}
}
// ao executar esse vem o resultado abaixo.
Adding new ship to hangar. Name: Hammerhead. Role: Patrol ship. Cost: 100.0
Your total operational cost is: 100.0. Your funds left:**200.0**.
Adding new ship to hangar. Name: Caterpillar. Role: Trading. Cost: 50.0
Your total operational cost is: 150.0. Your funds left:**50.0.**
Negritei a parte que me incomoda. Notei que o calculo que montei esta fazendo confusao, mas mesmo com duas cervejas ainda nao achei o meu erro.
edit: por negritar me refiro aos astericos duplos ali em "funds left".
Alguem ajuda o novato aqui? :]