Corrigir exercicio: 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

Primeiramente Boa noite;
Bem, estou iniciando meu aprendizado da linguagem JAVA. sou estudante do curso de ADS (Analise e desenvolvimento de Sistemas) mas ainda não estou pagando cadeira de JAVA então resolvi me adiantar e começar por conta própria. encontrei alguns sites e apostilas e assim iniciei.
já estou realizando alguns exercicios de fixação e gostaria da opinião de pessoas que já tem vivencia com a liguagem :smile:

o anunciado do exercicio é:
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.

e eu resolvi ele desta maneira:

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

void pintar(String cor){
    String corDaPorta = this.cor=cor;
    System.out.println("A Cor da Porta é: "+corDaPorta);
}
void abre(){ 
    if (this.aberta==false){
        this.aberta=true;
        }
}

void fecha(){ 
    if (this.aberta==true){
        this.aberta=false;            
        }
}
void estaAberta(){
    if(this.aberta==true){
        System.out.println("A Porta Está Aberta");
    }else{
        System.out.println("A Porta está Fechada");
    }
}   

public static void main (String args[]){
Porta porta = new Porta();
porta.pintar(“Azul”);
porta.dimensaoX=1.50;
porta.dimensaoY=0.50;
porta.dimensaoZ=0.50;

    porta.abre();
    porta.estaAberta();
    porta.fecha();
    porta.estaAberta();
    
    System.out.println("A cor da Porta é: "+ porta.cor);
    System.out.println("As Dimensoes da Porta são :"+"\n"+"X: "+ porta.dimensaoX +"\n"+"Y: "+ porta.dimensaoY +"\n"+"Z: "+ porta.dimensaoZ);
}

}

então? está correto? oque posso melhorar? levem em conta que é meu primeiro exercicio!

cara está muito bom, correto. Agora nesta parte:

void pintar(String cor){
    this.cor=cor;
    System.out.println("A Cor da Porta é: "+ this.cor);
}

pode ficar testa forma, não é necessário criar outra String.
agora aqui vai uma ideia minha de como melhorar e ficar mais “profissional”:smile:

public class Porta{
// coloco os atributos como private, ou seja, eles só podem ser usados nesta classe
private String cor;
private boolean aberta;
private double dimensaoX, dimensaoY, dimensaoZ;
// agora aqui vai os métodos, coloquei como publico para dizer que são invocados em outras classes
public void pintar(String cor){
     this.cor = cor;
     System.out.println("A Cor da Porta é: "+ this.cor);
}
public void abre(){ 
    if (this.aberta==false){
        this.aberta=true;
        }
}

public void fecha(){ 
    if (this.aberta==true){
        this.aberta=false;            
        }
}
// neste método pensei em retorna um boolean, mas vou retornar uma String
public String estaAberta(){
      if(this.aberta==true){
        return "A Porta Está Aberta";
    }else{
        return "A Porta está Fechada";
    }
}
// como coloquei cor privado ele nao vai ser acessado diretamente por outra classe, então irei criar um método que retorn a cor
public String qualCor(){
  return this.cor;
}
// a mesma coisa para dimensões
public void dimensaoX(String dimensaoX){
   this.dimensaoX = dimensaoX;
}
public void dimensaoY(String dimensaoY){
   this.dimensaoY = dimensaoY;
}
public void dimensaoZ(String dimensaoZ){
   this.dimensaoZ = dimensaoZ;
}
// retorno as dimensões
public String qualDimensaoX(){
   return this.dimensaoX;
}
public String qualDimensaoY(){
   return this.dimensaoY;
}
public String qualDimensaoZ(){
   return this.dimensaoZ;
}

}
//agora vamos para o Main
public static void main (String args[]){
        Porta porta = new Porta();
        porta.pintar("Azul");
        porta.dimensaoX(1.50);
        porta.dimensaoY(0.50);
        porta.dimensaoZ(0.50);

    porta.abre();
    System.out.println(porta.estaAberta());
    porta.fecha();
    System.out.println(porta.estaAberta());

    System.out.println("A cor da Porta é: "+ porta.qualCor());
    System.out.println("As Dimensoes da Porta são :"+"\n"+"X: "+ porta.qualDimensaoX() +"\n"+"Y: "+ porta.qualDimensaoY() +"\n"+"Z: "+ porta.qualDimensaoZ());
}

bom poderia ficar melhor e utilizar termos mais técnicos como set e get, mas de acordo com a qestão vc tá certo, vc so errou uma parte na questão lá fala boolean estaAberta(), ou seja vc tem q retornar um boolean e nao o método ser void

boolean estaAberta(){
   return this.aberta;
}
2 curtidas

Cara gostei muito da sua resposta, já vou testar algumas coisas que aprendi nela em outros exercicios. muito obrigado mesmo!

1 curtida

De nada qualquer coisa ai é só precisar tinha mais coisas q poderíamos implementar, mas como vc ta no inicio tenho certeza q na frente vc vai aprender, boa sorte :smile:

2 curtidas

obs para quem está vendo hoje em dia, eu errei, o método tem q receber um double e não String