[Resolvido] Métodos, não estão imprimindo na main

6 respostas
olivercld

Pessoal gostaria de esclarecimentos de vocês fiz o a classe porta como pede exercício da fj11 e todos seus atributos, métodos mais na hora de chamar na main não consigo imprimir, não aparecem resultados o que estou fazendo de errado ? já me atrapalhei aqui.
enquanto isso vou tentando aqui…

package teste;

public class Porta {

	// atributos
	public boolean aberta;

	public String cor;

	public int dimensaox;

	public int dimensaoy;

	public int dimensaoz;

	public void abre() {
		this.aberta = true;
	}

	public void fecha() {
		this.aberta = false;
	}

	public String pinta(String porta) {
		return porta = this.cor;
	}

	public boolean estaAberta() {
		if (aberta) {
			return true;
		} else {
			return false;
		}

	}
	//public String toString(){
		//return "Aberta: " + this.;
	//}
}

main:

package teste;

public class TestaPorta {
	public static void main(String[] args) {
		Porta porta = new Porta();
		
		porta.abre();
		
		porta.estaAberta();
		
		porta.pinta(" marron ");
		
	}
	
	
	

	

}

desde já agradeço emprenho e colaboração do todos.

6 Respostas

InicianteJavaHenriqu
package teste;  
  
public class TestaPorta {  
    public static void main(String[] args) {  
        Porta porta = new Porta();  
          
        porta.abre();  
          
        porta.estaAberta();  
          
        porta.pinta(" marron ");  
          
    }  
      
      
      
  
      
  
}

System.out.println(); :?: :?: :?:

nos métodos :?: :?: :?:

Fexx

Verifique isso.

public class TestaPorta {
	public static void main(String[] args) {
		Porta porta = new Porta();

		porta.abre();
		
		System.out.println(porta.aberta);//Como vc invocou o metodo abre() e depois imprimir aberta ele vai ser true.

		//se a porta estiver for true(aberta) vai retorna a mensagem abaixo.
		if(porta.estaAberta()){
			System.out.println("porta está aberta");
		}else{
			System.out.println("posta fechada");//senao a porta vai ser false(fechada) essa mensagem.
		}
		
		
//		definindo a cor da porta
		porta.pinta("marron "); 

//		imprimindo a cor da porta
		System.out.println(porta.cor); 
	}

}
olivercld
ok valeu pessoal, fiz desta forma:
package teste;

public class Porta {

	// atributos
	public boolean aberta;

	public String cor;

	public double dimensaox;

	public double dimensaoy;

	public double dimensaoz;

	public void abre() {
		this.aberta = true;
	}

	public void fecha() {
		this.aberta = false;
	}

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

	public boolean estaAberta() {
		if (this.aberta == false) {
			System.out.println(" Esta fechada ");

		}
		if (this.aberta == true) {
			System.out.println(" Esta aberta ");
		}
		return false;

	}

	public String toString() {
		return " Cor: " + this.cor + "\n Porta esta aberta: " + this.aberta
				+ "\n A porta esta fechada : " + this.aberta + "\n Altura: "
				+ this.dimensaox + "\n Largura: " + this.dimensaoy
				+ "\n Espesura: " + this.dimensaoz + "\n Verifica " + this.estaAberta();

	}
}
main:
package teste;

public class TestaPorta {
	public static void main(String[] args) {
		Porta porta = new Porta();

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

		porta.dimensaox = 2.30;
		porta.dimensaoy = 80;
		porta.dimensaoz = 2;
		porta.pinta(" Preta ");
		
		

		System.out.println(porta.toString());
		
		//System.out.println(porta.estaAberta());

	}

}

saída no console:

Esta aberta
Cor: Preta
Porta esta aberta: true
A porta esta fechada : true
Altura: 2.3
Largura: 80.0
Espesura: 2.0
Verifica false

olivercld

então colega Fexx, eu tentei esta formula:

porta.abre();  
          
        System.out.println(porta.aberta);//Como vc invocou o metodo abre() e depois imprimir aberta ele vai ser true.

só que não dá certo, pede para alterar retorno do método para booleana, sendo que o exercício pede para fazer o método como void

Fexx

Não necessita alterar o retorno do método para boolean, pois com o void vc vai apenas setar o estado da variável aberta que já é boolean, sem ter retorno nenhum.

Quando chamei o método: porta.abre() ele mudou o estado da variável para true. pois se vc imprimir apenas isso: System.out.println(porta.aberta); sem chamar o método abre(), veja que a saída será false, pois as variáveis declarados como boolean tem valor default false.

veja a classe porta, e verifique que não alterei o retorno do método:

public class Porta {  
  
    // atributos  
    public boolean aberta;  
  
    public String cor;  
  
    public int dimensaox;  
  
    public int dimensaoy;  
  
    public int dimensaoz;  
  
    public void abre() {  
        this.aberta = true;  
    }  
  
    public void fecha() {  
        this.aberta = false;  
    }  
  
    public String pinta(String cor) {  
        return this.cor = cor;  
    }  
  
    public boolean estaAberta() {  
        if (aberta) {  
            return true;  
        } else {  
            return false;  
        }  
  
    }  
    //public String toString(){  
        //return "Aberta: " + this.;  
    //}  
}

A casse TestaPorta

public class TestaPorta {
	public static void main(String[] args) {
		Porta porta = new Porta();

		porta.abre();
		
		System.out.println(porta.aberta);//Como vc invocou o metodo abre() e depois imprimir aberta ele vai ser true.

		//se a porta estiver for true(aberta) vai retorna a mensagem abaixo.
		if(porta.estaAberta()){
			System.out.println("porta está aberta");
		}else{
			System.out.println("posta fechada");//senao a porta vai ser false(fechada) essa mensagem.
		}
		
		
//		definindo a cor da porta
		porta.pinta("marron "); 

//		imprimindo a cor da porta
		System.out.println(porta.cor); 
	}

}

Com isso ele vai imprimir true.

Mas vc pode usar if e exibir uma frase no lugar de true.

Mas fico feliz que tenha conseguido de outra maneira, sobrescrevendo toString(). xD

olivercld

valeu amigo Fexx gostei da sua explicação e de como fez.

Criado 23 de dezembro de 2011
Ultima resposta 24 de dez. de 2011
Respostas 6
Participantes 3