Galera to aqui conseguindo quase 100% do exercicio e fiquei preso em uma parte.
Vejam só.
public class Porta {
boolean aberta;
String cor;
void abre() {
aberta = true;
}
void fecha() {
aberta = false;
}
void pinta(String s) {
this.cor = s;
}
void texto() {
System.out.println("Porta de Cor: " + this.cor);
}
void estaAberta() {
if (aberta == true) {
System.out.println("Esta aberta!");
} else {
System.out.println("Esta fechada!");
}
}
}
Até ai beleza, então o código pra rodar.
public class TesteCasa {
public static void main(String[] args) {
Casa novaCasa = new Casa();
novaCasa.cores("Branca");
novaCasa.textoCasa();
Porta porta1 = new Porta();
porta1.pinta("Preto");
porta1.texto();
porta1.abre();
porta1.estaAberta();
Porta porta2 = new Porta();
porta2.pinta("Azul");
porta2.texto();
porta2.fecha();
porta2.estaAberta();
Porta porta3 = new Porta();
porta3.pinta("Vermelho");
porta3.texto();
porta3.fecha();
porta3.estaAberta();
}
}
Ai também ta beleza, ai vem o final do problema.
3) Utilize o metodo quantasPortasEstaoAbertas para imprimir o número de portas abertas.
Rs, juro que estou embananado.
Alguem pode ajudar?
Abraço
Se eu entendi o que vc quer vc pode criar um list e add as abertas:
[code]static List lista = new ArrayList();
void abre() {
aberta = true;
lista.add(aberta);
}
void fecha(){
aberta = false;
lista.remove(lista.size()-1);
}
int quantasPortasEstaoAbertas(){
return lista.size() -1;
}[/code]
obs: fiz o cod aqui no Guj se estiver errado alguem ai corrija =D
vocë também pode utilizar uma variável estática para contar o número de portas abertas
public class Porta {
public static int portasAbertas = 0;
boolean aberta;
String cor;
void abre() {
aberta = true;
portasAbertas++;
}
void fecha() {
aberta = false;
}
void pinta(String s) {
this.cor = s;
}
void texto() {
System.out.println("Porta de Cor: " + this.cor);
}
void estaAberta() {
if (aberta == true) {
System.out.println("Esta aberta!");
} else {
System.out.println("Esta fechada!");
}
}
int quantasPortasEstaoAbertas() {
return portasAbertas;
}
}
public class TesteCasa {
public static void main(String[] args) {
Porta porta1 = new Porta();
porta1.pinta("Preto");
porta1.texto();
porta1.abre();
porta1.estaAberta();
Porta porta2 = new Porta();
porta2.pinta("Azul");
porta2.texto();
porta2.fecha();
porta2.estaAberta();
Porta porta3 = new Porta();
porta3.pinta("Vermelho");
porta3.texto();
porta3.fecha();
porta3.estaAberta();
System.out.println(porta3.quantasPortasEstaoAbertas());
}
}
dica:
não é necessário:
if (aberta == true) {
faça somente:
if (aberta) {
aberta já é um atributo booleano!
pmlm
Março 9, 2010, 6:21pm
#5
[quote=Gerson da S. Lima]vocë também pode utilizar uma variável estática para contar o número de portas abertas
[code]
void abre() {
aberta = true;
portasAbertas++;
}
void fecha() {
aberta = false;
}
[/code][/quote]
Convém actualizar também quando fecha a porta
void fecha() {
aberta = false;
portasAbertas--;
}
Além de que neste momento nada impede que se tente abrir uma porta já aberta.
[code]
void abre() {
if (aberta){
System.out.println(“Não pode abrir uma porta já aberta!”);
} else {
aberta = true;
portasAbertas++;
}
}
void fecha() {
if (aberta){
aberta = false;
portasAbertas--;
} else {
System.out.println("Não pode fechar uma porta já fechada!");
}
}[/code]
Ae grato pelo auxilio de todos, claro, faz total sentido.
Gostei muito do exemplo simples do Gerson, funcionou corretamente.
E pmlm, valeu pela dica, com certeza um dia eu vou precisar usar isso.
Abraço e grato a todos que ajudaram.
mazoni
Outubro 3, 2010, 4:43pm
#7
Oi pessoal, alguem poderia colocar o método estaAberto em boolean para que eu possa ver como ficaria? Eu tb estou resolvendo esse exercicio e fiz do msm jeito que está no enunciado, porém a apostila pede para que crie o método estaAberta como boolean.