Duvida em exercicio

10 respostas
M

Bom pessoal espero que alguem possa me ajudar!!!
Eu comecei essa semana a fazer um curso java e nós utilizamos a apostila da caelum Java Básico… No capitulo 4 ,pag 45, tem um exercicio da parte fixando conhecimento que eu não consigo fazer a resposta sair do jeito que eu quero…

public class Porta {

boolean aberta;
String cor;
double dimx;
double dimy;
double dimz;

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

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

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

boolean estaAberta(){
	if (this.aberta){
		System.out.println("A porta esta aberta");
}
	else {
		System.out.println("A porta esta fechada");
	
		
	
}

void mostra (){
	
	System.out.println("A porta esta aberta :"+this.estaAberta());
	System.out.println("Dimensoes :"+this.dimx+","+this.dimy+","+this.dimz);
	System.out.println("Cor da porta :"+this.cor);	
}

}

Esse foi o unico jeito que o eclipse copilou o arquivo… eu gostaria que como saída eu tivesse … A porta esta aberta… mas ele só me devolve true ou false…

Se alguem puder me ajudar…

10 Respostas

henry.everton

Cara das duas uma… ou voce coloca o metodo estaAberta como void para imprimir somente o status dele, ou voce declara ao inves de boolean declara String, pq ele deve ti retornando “A porta está aberta” em uma string e nao True ou False!!!
Além disso voce precisará de uma String que vai pegar a string “esta aberta” ou “está fechada”.

Entendeu?

rdgms
System.out.println("A porta esta aberta :"+ (estaAberta()==true) ? "Aberta" : "Fechada");

Acho que é isso…

E
public class Porta {
	
	boolean aberta;
	String cor;
	double dimx;
	double dimy;
	double dimz;

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

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

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

	//este metodo vai te avisar se a porta esta ou nao aberta
	boolean estaAberta(){
		return this.aberta;
	}

	
	//este eh o metodo responsavel por mostrar
	void mostra (){
		if (estaAberta()){
			System.out.println("A porta esta aberta");
		}
		else {
			System.out.println("A porta esta fechada");
		}
		System.out.println("Dimensoes :"+this.dimx+","+this.dimy+","+this.dimz);
		System.out.println("Cor da porta :"+this.cor);
	}


	//implementei este main apenas para mostrar as funcionalidades
	public static void main (String args[]){
		Porta porta = new Porta();
		porta.pinta("Preto e Branco");
		porta.abre();
		porta.mostra();					
	}


}

Então acho que você só confundiu um pouco as coisas ... Coloquei o código pra você dar uma comparada.

henry.everton

bela explicação… e é bem mais facil do que eu queria fazer…rsrsrsrsrssrrr

tudo bem… iniciante querendo ajudar iniciante…

edpittol

1o - qdo for postar um codigo vc deve colocar entre as tags code…

2o - esse metodo

boolean estaAberta(){ 
if (this.aberta){ 
System.out.println("A porta esta aberta"); 
} 
else { 
System.out.println("A porta esta fechada"); 
}

o retorno dele deve ser void… o deve implementar ele assim…

boolean estaAberta() { 
return this.aberta; 
}

3o usando minha implementaçao do metodo estaAberta vc nao precisa alterar seu metodo mostra q ele vai imprimei:
A porta esta aberta :true ou A porta esta aberta :false

era isso… erros como esses para qm esta começando a programar é frequente.

abraço

M

Valeu pessoal!!!
Eu ainda vou precisar e mto da ajuda de vcs!!!
Bjos!!! :lol:

A

Eu faria assim, nao sei se deu certo pq eu fiz rapinho e nao testei, mas acho que resolveria:

[b] public class Porta {

boolean aberta = true;

String cor;

double dimx;

double dimy;

double dimz;
void pinta (String s){

this.cor = s;

}
string estaAberta(){

if (aberta){

String resposta = A porta esta aberta;

}

else {

String resposta = A porta esta fechada;

return resposta;

}

void mostra (){

System.out.println(A porta esta :+ estaAberta());

System.out.println(Dimensoes :+this.dimx+","+this.dimy+","+this.dimz);

System.out.println(Cor da porta :+this.cor);

}

} [/b]

abraços,

rdgms

Eu não concordo muito… e se posteriormente por algum motivo você quiser saber se a porta esta aberta?

//retornando uma string
if (porta.estaAberta()=="A porta esta aberta")

//retornando um boolean
if(porta.estaAberta())

e

A

Sua dica com certeza é melhor sim, eu nao tinha visto.
Foi mal!!
:oops:

edpittol

rdgms:
Eu não concordo muito… e se posteriormente por algum motivo você quiser saber se a porta esta aberta?

//retornando uma string
if (porta.estaAberta()=="A porta esta aberta")

//retornando um boolean
if(porta.estaAberta())

e

para comparar strings se usa o metodo equals da classe java.lang.String e nao o operrador ==

Criado 7 de março de 2008
Ultima resposta 7 de mar. de 2008
Respostas 10
Participantes 6