Exercício apostia Caelum fj11 (iniciante)

Sou novo aqui no fórum e também em programação, iniciei há algumas semanas atrás a aprender minha primeira linguagem, da qual optei por java, me deparei com um exercício do qual não tenho certeza se atendi corretamente e eficientemente ao que me é pedido. O enunciado diz o seguinte :

Programa 2
Classe: Porta
Atributos:aberta, cor, dimensaoX, dimensaoY, dimensaoZ
Métodos: void abre(), void fecha(), void pinta(String s), boolean estaAberta(),

Crie uma porta, abra e feche a mesma, pinte-a de diversas cores, altere suas dimensões e use o método estaAberta para verificar se ela está aberta.

Minha solução funcionou, mas não sei se fiz da maneira correta, acho que simplifiquei mais do que devia, não sei, agradeceria muito por uma correção, segue minha solução:

class Porta {
boolean aberta;
String cor;
double dimensaoX;
double dimensaoY;
double dimensaoZ;

void abre() {
this.aberta = true;
}	
void fecha() {
this.aberta = false;
}
void pinta(String coloracao) {
this.cor = coloracao;
}
boolean estaAberta() {
	if (this.aberta == true) {
		return true;
	} else {
		return false;
	} 

}

}

class P6 {
public static void main(String[] args) {

	new Porta();
	Porta portaDoQuarto;
	portaDoQuarto = new Porta();

	portaDoQuarto.cor = "amarelo";
	portaDoQuarto.dimensaoX = 4;
	portaDoQuarto.dimensaoY = 8;
	portaDoQuarto.dimensaoZ = 0.2;
	
	System.out.println(portaDoQuarto.cor);
	System.out.println(portaDoQuarto.dimensaoX);
	System.out.println(portaDoQuarto.dimensaoY);
	System.out.println(portaDoQuarto.dimensaoZ);

	portaDoQuarto.pinta("azul");
	System.out.println(portaDoQuarto.cor);
	
	portaDoQuarto.fecha();
	portaDoQuarto.estaAberta();
	
	if (portaDoQuarto.estaAberta() == true) {
		System.out.println("porta aberta");
	} else {
		System.out.println("porta fechada");
	}
	
}

}

Aqui você não precisa testar o valor para retornar, o próprio atributo já possuí a informação!

boolean estaAberta() {
    return this.aberta;
}

Aqui basta testar o método, pois como ele já retorna um booleano, não precisa colocar == true.

if (portaDoQuarto.estaAberta()) {
	System.out.println("porta aberta");
} else {
	System.out.println("porta fechada");
}

Entendi, muito obrigado pela ajuda!

Outro detalhe que havia esquecido de comentar, não utilize atribuição direta ao atributo da classe, coloque os mesmos como acesso privado e implemente os métodos get e set de cada um deles para movimentar os seus valores!

Exemplo:

portaDoQuarto.setCor("amarelo");
portaDoQuarto.setDimensaoX(4);
portaDoQuarto.setDimensaoY(8);
portaDoQuarto.setDimensaoZ(0.2);

System.out.println(portaDoQuarto.getCor());
System.out.println(portaDoQuarto.getDimensaoX());
System.out.println(portaDoQuarto.getDimensaoY());
System.out.println(portaDoQuarto.getDimensaoZ());

Exemplo de Get e Set:

private String cor;

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

public String getCor() {
    return this.cor;
}

A apostila que estou seguindo ainda não chegou nessa parte :rofl: