Obter a marcha do carro baseado na velocidade atual
Olá amigos do fórum.
O meu raciocínio abaixo está correto? Quero obter a marcha atual do carro, (objeto carro) baseando-se na velocidade atual do mesmo.
Se tem uma forma mais correta de faze-lo por favor, fiquem a vontade para postar.
//CLASSE CARRO
class carro{
String cor,
modelo;
double velocidadeAtual = 0,
velocidadeMaxima;
boolean ligado = false;
void liga(){
ligado = true;
}
void desliga(){
ligado = false;
}
double acelera(double vel){
if(ligado){
if(vel >= this.velocidadeMaxima){
this.velocidadeAtual = velocidadeMaxima;
}else{
this.velocidadeAtual += vel;
}
}else{
return 0;
}
return this.velocidadeAtual;
}
int marcha(){
double marchaAtual = 0, qtdMarchas = 0;
if(this.velocidadeAtual < 0){
marchaAtual = -1;
qtdMarchas = 0;
}else if(this.velocidadeAtual == 0){
marchaAtual = 0;
qtdMarchas = 0;
}else{
double velPorMarch = 0;
if(this.velocidadeMaxima > 80 && this.velocidadeMaxima < 120){
velPorMarch = this.velocidadeMaxima / 5;
qtdMarchas = 5;
}else if(this.velocidadeMaxima <= 80){
velPorMarch = this.velocidadeMaxima / 4;
qtdMarchas = 4;
}
marchaAtual = ((velPorMarch + velocidadeAtual) / this.velocidadeMaxima) * qtdMarchas;
}
if((int)marchaAtual > 5){
return 5;
}else{
return (int)marchaAtual;
}
}
void estado(){
System.out.println("Cor: "+this.cor);
System.out.println("Modelo: "+this.modelo);
System.out.println("Vel Máxima: "+this.velocidadeMaxima);
System.out.println("Vel Atual: "+this.velocidadeAtual);
System.out.println("Ligado: "+this.ligado);
}
}
Testando o carro
class testa_carro{
public static void main(String[] args){
carro meuFusca;
meuFusca = new carro();
meuFusca.cor = "Branco";
meuFusca.modelo = "Sei lá";
meuFusca.velocidadeMaxima = 90;
meuFusca.liga();
meuFusca.acelera(30);
meuFusca.estado();
System.out.println("Meu fusca está na marcha: "+meuFusca.marcha());
}
}Discussão (2)
Carregando comentários...