Exercício Java [AJUDA]!

1 resposta
programaçãojava
Felipe_Rafael
*Cria uma classe Porta com os seguintes atributos: aberta, cor,

dimensaoX, dimensaoY, dimensaoZ. E também os seguintes Métodos:

void abre(), void fecha(), void pinta(String s), boolean estaAberta()

 Altere o status em aberta ou fechada, pinte-a informando o status da

cor, altere suas dimensões e use o método estaAberta para verificar se

ela está aberta.

 Crie uma classe chamada Casa com os 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.

Abaixo é a 1ª parte que desenvolvi, mas não sei se está certo, pois ainda não tenho experiência em java.

public class Porta{

boolean aberta;

String cor;

double dimensaox, dimensaoy, dimensaoz;
public void abre(){
	if (aberta == true){
		aberta = true;
		System.out.println("Esta aberta");
	}
}
public void fecha(){
	if(aberta == false){
		aberta = false;
		System.out.println("Esta fechada")
	}
}

public void pinta(String s){
	this.cor = s;
	return this.cor = "Verde";

}

public boolean estaAberta(){
	if(aberta == true){
		System.out.println("Esta aberta!!");
	} else {
		System.out.println("Esta fechada!!");
	}

}

}

1 Resposta

A

Bom, quase. No método abre/fecha as condições estão invertidas, o método abre() deve checar se está fechada e aí sim atribuir true para “aberta”, checar se aberta == true e depois atribuir true novamente não faz sentido. Ficando assim:

public void abre(){
	if (aberta == false){
		aberta = true;
		System.out.println("A porta foi aberta");
	} else {
		System.out.println("A porta já está aberta");
	}
}

o fecha() é a mesma coisa, baseado no abre() tente concertá-lo.

No método pinta() está quase correto, exceto por você retornar “this.cor = “Verde””, o que não faz o menor sentido, o método pinta() não retorna nada, e ainda por cima ficaria errado definir a cor verde automaticamente, por que mesmo se o usuário digitar “vermelho” no final iria ficar “verde” (?)

A classe Casa é o mesmo esquema, qualquer dúvida pode postar aí.

Criado 18 de novembro de 2017
Ultima resposta 19 de nov. de 2017
Respostas 1
Participantes 2