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

4 respostas
J

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!

4 Respostas

J

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;
}
J

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

J

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:

J

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

Criado 17 de dezembro de 2015
Ultima resposta 4 de abr. de 2017
Respostas 4
Participantes 2