quantasPortasEstaoAbertas();

/3) Programa 3
Classe: Casa Atributos: cor, porta1, porta2, porta3 Método: void pinta(String s),
int quantasPortasEstaoAbertas()
Crie uma casa e pinte-a.
Crie três portas e coloque-as na casa; abra e feche as mesmas como desejar.
Utilize o método quantasPortasEstaoAbertas para imprimir o número de portas abertas.
/

public class Casa{


  String cor ;
  int porta1;
  int porta2;
  int porta3;

   public void Pinta (String S){
     this.cor = S;
  }

   int portaAberta ( int passavalor){
     return 1; 
  }

   int portaFechada(int passavalor){
     return 0;
  }

   void quantasPortasEstaoAbertas(){
     int soma = porta1+ porta2+ porta3;
     if( soma == 0){
        System.out.println ( " Todas as portas estão fechadas");
     }
     else{ 
        System.out.println ( soma+"  estão abertas ");
     }
  }

}

teste>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>L`^ZV(

public class TesteCasa {
   public static void main ( String [ ] args ){
  
     Casa c1 = new Casa ();
     
     c1.porta1= c1.portaAberta(c1.porta1);
     c1.porta2 = c1.portaFechada(c1.porta2);
     c1.porta3 = c1.portaFechada(c1.porta3);
  
     String [] color = { "Blue  " ,"Vermelha", "Azul" ,"Cinza", "Amarela " };
     c1.Pinta( color [1]);
     System.out.println ("===> Casa Criada  <========( passo 1 )====");
     System.out.println (" A cor da casa é :"+ c1.cor);
     c1.quantasPortasEstaoAbertas();
     System.out.println( " Esse é número de portas abertas na casa!");
  	
  

  
  }

}

Opaa pesssoal fiz esse programinha ae… sou iniciante gostaria de saber se essa é a forma mais simples e certa e se estar certo ?

hmmm poderia ser 1 pouco + orientado a objetos… que tal criar um objeto porta ??

[code]public class Porta {
private boolean aberta = false;

public Porta() {
}

public void abrir() {
    this.aberta = true;
}

public void fechar() {
    this.aberta = false;
}

public boolean isAberta() {
    return aberta;
}

public boolean isFechada() {
    return !aberta;
}

}[/code]

Por padrão cria 1 casa com 3 portas, mais vc pode criar um casa com quantas portas quiser…

Caso preciso alterar a quantidade de portas, depois da casa criada, use Collection no lugar de Array

[code]public class Casa {
private String color;
private Porta[] portas = new Porta[3];

public Casa() {
     this(3);
}

public Casa(int numeroDePortas) {
     portas = new Porta[numeroDePortas];
     for(int i = 0; i < portas.length ; i++)
        porta[i] = new Porta();
}

//.... outros métodos

//use fecharPorta(1) para fechar a 1° porta e fecharPorta(3) para a terceira...
public void fecharPorta(int numero) {
    portas[numero-1].fechar();
}

public void abrirPorta(int numero) {
    portas[numer-1].abrir();
}

public int quantidadeDePortasAbertas() {
    int portasAbertas = 0;
    for(Porta porta : portas)
        if (porta.isAberta())
             portasAbertas++;
    return portasAbertas;
}

public int quantidadeDePortasFechadas() {
    return portas.length - quantidadeDePortasAbertas();
}

}[/code]

assim seu teste seria facil…

public static void main ( String [ ] args ){ Casa casa = new Casa(); casa.abrirPorta(1); casa.abrirPorta(3); System.out.print("A casa está com "); System.out.print(casa.quantidadeDePortasAbertas()); System.out.println(" porta(s) aberta(s)"); }

Lavieri também sou iniciante em java, dei uma olhada no teu código vi que você utiliza bem os recursos de orientação à objeto, gostaria
que você me explicasse um parte do teu código que fiquei com dúvida, segue o trecho a baixo comentado com as duvidas

[code] private Porta[] portas = new Porta[3]; // aqui voce define o tamanho do vetor na memória certo?

public Casa(int numeroDePortas) {  
     portas = new Porta[numeroDePortas];  // por que que nesse trecho você redefine o tamanho do mesmo vetor, sendo que você ja tinha definido no escopo da classe, ou estou enganado?

for(int i = 0; i < portas.length ; i++)  
        porta[i] = new Porta();  [/code]
}