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;
}
}
(CLASSE MAIN)
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??**
}
}