Iai galera do guj, vim aqui hj tentar achar uma solução para este pequeno impasse num código,é aquele sistema da caelum de casa … portas … e incrementei mais uma classe (quarto), no método quantDePortas, o código ta contando em dobro, pois so tem 3 portas criadas, e na interface resulta como 6 portas, este é meu primeiro posto, espero q entendam e me corrijam nos meus erros de programação e de post do tópico. Abraço
Código:
//Classe casa:
package RevisandoPOOcaelum;
public class Casa {
String cor;
int quantQuartos;
int totalDePortas;
Porta[] p = new Porta[3];
Quarto [] q = new Quarto[2];
int i = 0;
int x = 0;
boolean aberta;
void pinta (String s){
if (this.cor == s){
System.out.println("A casa ja estar pintada desta cor!");
}
else {
this.cor = s;
System.out.println("A casa foi pintada da cor: " +cor);
}
}
void adicionaPorta(Porta port) {
if (totalDePortas < p.length) {
p[totalDePortas] = port;
totalDePortas++;
}
else {
System.out.println("Array cheia");
}
}
void adicionaQuarto (Quarto novoQuarto){
if (quantQuartos < q.length) {
q[quantQuartos] = novoQuarto;
quantQuartos++;
}
else {
System.out.println("Array cheia");
}
}
void abre(){
if (this.aberta != false){
System.out.println("A porta ja se encontra aberta!");
}
else{
this.aberta = true;
System.out.println("Abrindo a porta!");
}
}
void quantPortasAbertas (){
int i = 0; int contPortas = 0;
for (i = 0; i < p.length; i++){
if (this.p[i].aberta == true){
contPortas += 1;
}
}
System.out.println("Existem " + contPortas + " portas abertas!");
}
int quantDePortas() {
for (int i = 0; i < p.length; i++){
if (p [i] != null) {
totalDePortas += i;
}
}
System.out.println("Total de portas: " +totalDePortas);
return totalDePortas;
}
void fecha(){
if (this.aberta == true){
this.aberta = false;
System.out.println("Fechando a porta!");
}
else{
System.out.println("A porta ja se encontra fechada!");
}
}
/*int quantQuartos(){
for (int x = 0; x < this.q.length; x++){
int contQuartos = 0;
if (this.q[x] != null){
quantQuartos += x;
}
System.out.println("Quantidade de quartos: "+ quantQuartos);
return quantQuartos;
}
}
*/
}
// TesteCasa:
package RevisandoPOOcaelum;
public class TesteCasa {
public static void main (String args[]){
Casa casa = new Casa();
Porta p1 = new Porta();
Porta p2 = new Porta();
Porta p3 = new Porta();
Quarto q1 = new Quarto();
Quarto q2 = new Quarto();
//Não é mais necessario pois foi adicionado o método: Adicionar Porta.
/*casa.p [0] = p1;
casa.p [1] = p2;
casa.p [2] = p3;
casa.q [0] = q1;
casa.q [1] = q2;
*/
casa.pinta ("branca");
casa.adicionaPorta(p1);
p1.aberta = false;
p1.cor = ("verde");
p1.tipo = ("Madeira");
casa.adicionaPorta(p2);
p2.aberta = true;
p2.cor = ("Azul");
p2.tipo = ("PVC");
casa.adicionaPorta(p3);
p3.aberta = false;
p3.cor = ("Preta");
p3.tipo = ("Madeira");
casa.adicionaQuarto(q1);
casa.adicionaQuarto(q2);
q1.tamanho = ("10 metros²");
q1.suite = true;
q1.Ehsuite();
q2.suite = false;
q2.tamanho = ("8 metros²");
q2.Ehsuite();
p1.abre();
p2.abre();
casa.pinta("Cinza");
casa.quantDePortas();
casa.quantPortasAbertas();
}
// classe Porta:
package RevisandoPOOcaelum;
public class Porta {
boolean aberta;
String cor;
String tipo;
void abre(){
if (this.aberta != true){
this.aberta = true;
System.out.println("Abrindo a porta!");
}
else{
System.out.println("A porta ja se encontra aberta!");
}
}
void fecha(){
if (this.aberta != false){
this.aberta = false;
System.out.println("Fechando a porta!");
}
System.out.println("A porta ja se econtra fechada!");
}
void pinta (String c){
if (this.cor == c){
System.out.println("A porta ja estar pintada desta cor!");
}
else {
this.cor = c;
System.out.println("A porta foi pintada da cor: " +cor);
}
}
boolean estaAberta (){
if (this.aberta == true) {
System.out.println("Porta aberta");
} else {
System.out.println("Porta fechada");
}
return false;
}
}