Exercício Java [AJUDA]!

*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!!");
	}

}

}

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í.