Galera me ajudem nesse programa

11 respostas
renatac

Classe: Porta
Atributos: aberta, cor, dimensaoX, dimensaoZ, dimensaoY
Metodos: 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 metodo estaAberta para verificar se ela esta aberta.

Eu fiz da seguinte forma...

package com.yourcompany.struts;

public class Porta 
{
	{
	
		boolean aberta;
		String cor;
		double dimensaoX;
		double dimensaoY;
		double dimensaoZ;
		
	}
	
	void fecha()
	{
		System.out.println("A porta está fechada!");
	}
	
	void abre()
	{
		System.out.println("A porta está aberta");
	}
	
	boolean estaAberta(String s)
	{
		boolean aberta = false; 
		{
			System.out.println("Porta não esta aberta");
				
		return  true;
		}
	}
}
package com.yourcompany.struts;

public class TestaPorta 
{

	public static void main(String[] args) 
	{
				
		
		
		Porta porta = new Porta();
		
		porta.fecha();
		porta.abre();	
		double dimensaoX = 5.20;
		double dimensaoY = 4.00;
		porta.estaAberta("Aberta");
		porta.estaAberta("Fecha");
		
		System.out.println("A porta está "+porta);
		
	}

}

Aee galera me ajuda ae... Ta rodando o programinha, mas nao ta rodando certo! Vlw... :cry:

11 Respostas

S

[color=blue]Oi Renata... acho que o problema maior que você ta tendo esta nos parâmetros que você tem que colocar na classe. Fiz algumas correções na sua classe Porta, olha:

package com.yourcompany.struts;
 
 public class Porta 
 {

 		boolean aberta;
 		String cor;
 		double dimensaoX;
 		double dimensaoY;
 		double dimensaoZ;
 		
	
 	void fecha()
 	{
 		System.out.println("A porta está fechada!");
 	}
 	
 	void abre()
 	{
 		System.out.println("A porta está aberta");
 	}
 	
 	boolean estaAberta(String s)
 	{
 		
 	}
	
	boolean aberta = false; 
 	{
 		System.out.println("Porta não esta aberta");
 				
 		return  true;
 	}
 }
Acho que pelo menos erros de compilação não vai dar mais. Pra encontrar este tipo de erro mais facilmente é bom você usar o Eclipse. :wink:

Ate mais[/color]

jWeslley

Ola Renata.
Sua classe Porta é digna de um design pattern chamado State,
que serve para controlar o estado de um objeto.
Voce fez tudo certo, mas ao invocar os metodos fecha e abre
esqueceu de alterar o valor do campo aberta. Outro detalhe, e uma
boa pratica de prog. declarar campos privados com metodos acessores. :smiley:

O seguinte codigo deve resolver:

public class Porta {

		private boolean aberta;
		private String cor;
		private double dimensaoX;
		private double dimensaoY;
		private double dimensaoZ;

		public void fecha() {
			aberta = false;
			System.out.println("A porta está fechada!");
		}

		public void abre() {
			aberta = true;
			System.out.println("A porta está aberta");
		}

		public boolean estaAberta() {		
			return aberta;
		}

		public String toString() {
			return estaAberta() ? "Aberta" : "Fechada";
		}

		// Getters e Setters para os campos: cor, dimensaoX, dimensaoY, dimensaoZ.
	}
LPJava

renata so n entendi o q vai fazer dizer se a porta esta aberta ou fechada o us vai precisar digitar algo?

pq se n for eh so chamar os dois metodos e testar os valores passados acho que n precisa da boolean n compreendi direito renata pode especificar mais como funcionaria o programa?

renatac

Oi skyblue Vlw pela ajuda!!!.. eu uso o Eclipse sim… Vlw Ajudou bastante!

renatac

Entaum… no caso o programa funcionaria da seguinte forma… pelo que eu entendi, eu poderia entrar com a cor que eu quisesse os tamanhos , e entrar com os metodos de abrir e fechar qtas vezes eu quises, depois o programa me diria se a porta esta fechada ou naum… Acho que é basicamente isso!..

Mas Vlw ae galera pela ajuda… vou tentar dos dois jeitos… é como sou crua em java… no caso eu preferiria a primeira ajuda, bem básica… mas a outra explicação não esta muito dificil…

Bom vou tentar as duas… e ver os resultados…

Obrigada galera! :smiley:

renatac

jWeslley

Acho que deu certinho seu código!!! Só uma dúvida… Entaum eu tenho que declarar as variaveis tudo privadas e meus metodos em public?

Abraços…

akumaldo

renatac:
jWeslley

Acho que deu certinho seu código!!! Só uma dúvida… Entaum eu tenho que declarar as variaveis tudo privadas e meus metodos em public?

Abraços…

bom…quanto a essa questão…não é uma regra imutável, mas na maioria dos programas isso vai ser constante, é uma boa prática de programação!! isso é um conceito da orientação a objetos que consiste em você preservar os atributos da classe, dentro da classe! não deixando classes de fora acessar atributos que só para a classe são interessantes serem acessados! isso é chamado de encapsulamento!você só vai conseguir acessar os atributos da classe indiretamente usando métodos! :slight_smile:
espero ter ajudado

jWeslley

akumaldo

Vc falou tudo, é isso aí. :smiley:

T

renatac

sobre esses conceitos de POO(Programaçao orientada a objetos), entra no site http://www.caelum.com.br e baixa a apostila FJ-11
nela eh explicado esses conceitos de POO para java… eh muito boa a apostila!!!

T+

LPJava

akumaldo o parceiro disse tudo, matou a o bicho com uma tacada apenas!!

akumaldo

travis182:
renatac

sobre esses conceitos de POO(Programaçao orientada a objetos), entra no site http://www.caelum.com.br e baixa a apostila FJ-11
nela eh explicado esses conceitos de POO para java… eh muito boa a apostila!!!

T+

Isso ae!!! uma ótima diga!!baixa a apostila da caelum que lá explica de maneira bem didática diversos conceitos…e nem é tão longa a apostila…:smiley:

Criado 6 de julho de 2006
Ultima resposta 8 de jul. de 2006
Respostas 11
Participantes 6