Pessoal, estou fazendo uns testes com os principios da OO e a idea é de que o carro não ande caso alguma porta esteja aberta e caso esteja, freie na hora e fique a 0 rpm.
na aplicação, criei apenas 2 objetos que representam as portas da frente e as de tras,porem quando chego na hora de testar no Main, ele acaba andando ou não reiniciando, mesmo eu especificando tudo.
(CLASSE PORTAS)
package oo;
public class Portas { boolean portasDaFrente = true; boolean PortasDeTras = true; }
(CLASSE MOTOR)
public class Motor {
boolean ligado = false;
double fatorInjecao = 1;
int giros () {
if (!ligado) {
return 0;
}else {
return (int) Math.round(fatorInjecao * 3000);
}
}
}
(CLASSE CARRO) (aonde provavelmente esta o erro)
package oo;
public class Carro {
Motor motor =
new Motor();
Portas portas =new Portas();void acelerar () { /// é nessa parte aonde eu acho que esta o erro if (portas.portasDaFrente == true && portas.PortasDeTras == true) { motor.fatorInjecao += 0.4; System.out.println(“as portas estão fechadas”); }else if (portas.portasDaFrente == false || portas.portasDaFrente == false){ motor.fatorInjecao -= motor.fatorInjecao; System.out.println(“as portas estão abertas haha”); } }void frear () { if (motor.fatorInjecao < 0) { motor.fatorInjecao += 0.4; }else { motor.fatorInjecao = 0 ; } }//true para fechadas //false para abertas boolean fecharPortasDafrente () { // fechadas return portas.portasDaFrente = true; }boolean abrirPortasDaFrente () { //abertas return portas.portasDaFrente = false; }boolean fecharPortasDeTras () { return portas.PortasDeTras = true; }boolean abrirPortasDeTras () { return portas.PortasDeTras = false; }String verificarPortasDaFrente () { if (portas.portasDaFrente == true) { return “portas da frente estão fechadas”; }else if (portas.portasDaFrente == false) { return “as portas da frente estão abertas”; }else return null; } String verificarPortasDeTRAS () { if (portas.PortasDeTras == true) { return “portas de tras estão fechadas”; }else if (portas.PortasDeTras == false) { return “as portas de tras estão abertas”; }else return null; }void Ligar() { motor.ligado = true; } void desligar () { motor.ligado = false; } boolean estaLigado() { return motor.ligado; } }
<strong>(CLASSE MAIN)</strong>
package oo;
public class CarroTeste {
public static void main(String[] args) {
Carro c1 = new Carro();
c1.Ligar();
System.out.println(c1.estaLigado());
c1.abrirPortasDeTras();
System.out.println(c1.verificarPortasDeTRAS());
System.out.println(c1.motor.giros());**// mesmo com portas abertas, ele continua com velocidade??**
}
}