Variavel

6 respostas
guazelli.ugo

Ola pessoal sou novo por aqui, e começando no java, por isso minha pergunta é meio besta mas ai vai:

É um programinha só para praticar em que faço uma moto trocar a marcha e aumenta a velocidade, eu criei uma classe assim:

[b]public class motos {

private int caixaDeMarcha;

private double motor;

private double velocidade = (this.caixaDeMarcha * this.motor);
public void setCaixaDeMarcha(int caixaDeMarcha) {
    this.caixaDeMarcha = caixaDeMarcha;
}

public void setMotor(double motor) {
    this.motor = motor;
}
public double getvelocidade(){

return velocidade;

}

}[/b]

e depois na classe principal:

[b]public class Moto {

public static void main(String[] args) {
   
    
    motos moto1 = new motos();
    
    moto1.setCaixaDeMarcha(3);
    moto1.setMotor(40);
    System.out.println(moto1.getvelocidade());
}

}[/b]

o problema é que quando imprimo getvelocidad a velocidade é 0.0 e teria que ser 120 o que estou errando?

6 Respostas

F

Siga o fluxo, na primeira iteração você vai fazer 0* 3 que é igual a zero, sempre será zero.

F

Foi mal não olhei direito seu código, na real falta você fazer a multiplicação em getVelocidade()

guazelli.ugo

Sim mas eu estou fazendo a multiplicação na declaração da variavel

private double velocidade = (this.caixaDeMarcha * this.motor);

não deveria funcionar?

d34d_d3v1l

faz um
setVelocidade

F

Sim mas eu estou fazendo a multiplicação na declaração da variavel

private double velocidade = (this.caixaDeMarcha * this.motor);

não deveria funcionar?

Não, porque você faz a multiplicação antes que a classe seja instanciada. Nesse momento os valores são respectivamente zero.
Faça o produto no retorno de seu método. Entendeu :?:

guazelli.ugo

Valeu fabioEM entendido. :smiley:

Criado 12 de maio de 2012
Ultima resposta 12 de mai. de 2012
Respostas 6
Participantes 3