public class Carro {
String marca; String modelo; String cor; int ano; double valorDeCompra; double valorDeVenda; double lucro = valorDeCompra - valorDeVenda; boolean vendido;
}
public class Carro {
String marca; String modelo; String cor; int ano; double valorDeCompra; double valorDeVenda; double lucro = valorDeCompra - valorDeVenda; boolean vendido;
}
Boa noite Felipe,
Neste cenário o ideal é transformar a propriedade lucro em um método que nos retorne o valor deste calculo. Assim:
classe Carro
public class Carro {
String marca;
String modelo;
String cor;
int ano;
double valorDeCompra;
double valorDeVenda;
double lucro = this.valorDeCompra - this.valorDeVenda;
boolean vendido;
// Criando o método getLucro
double getLucro() {
return valorDeCompra - valorDeVenda;
}
}
classe TestaCarro
public class TestaCarro {
public static void main(String[] args) {
Carro carro = new Carro();
carro.valorDeCompra = 10000.0;
carro.valorDeVenda = 5000.0;
System.out.println(carro.getLucro());
}
}
Ao longo do curso você também vai aprender a usar construtores que são um outro jeito de resolver esse problema.
Abraços
Opa Felipe, assumo que seu Main esteja parecido com isso:
public class TestaClasse {
public static void main(String[] args) {
Carro c= new Carro();
c.valorDeCompra= 5000;
c.valorDeVenda=7000;
System.out.println(c.lucro);
}
}
se esse for o caso, o erro está no método Carro. Uma vez que você cria uma classe sem atributos definidos eles são startados como 0 para números, "" para strings e null para objetos. Logo, na linha que você escreve :
double lucro = valorDeCompra - valorDeVenda;
você apenas está definindo o lucro como lucro=0-0, existem 2 soluções para esse problema. A primeira você aprenderá nas próximas aulas que é o uso de construtores para inicializar as classes já com valores para seus atibutos, a segunda é definir lucro como um método, e não um atributo. Sendo assim, o lucro só será calculado quando o seu método for chamado,evitando assim que seu lucro seja calculado antes dos atributos serem definidos. Assim:
public class TestaClasse {
public static void main(String[] args) {
Carro c= new Carro();
c.valorDeCompra= 5000;
c.valorDeVenda=7000;
System.out.println(c.lucro());
}
}
public class Carro {
String marca;
String modelo;
String cor;
int ano;
double valorDeCompra;
double valorDeVenda;
boolean vendido;
public double lucro() {
return this.valorDeVenda - this.valorDeCompra;
}
}
Dessa forma seu código deveria funcionar sem problemas.