Duvida Simples

8 respostas
J

Sou iniciante em java e estou tentando fazer alguns exercicios , porém dei uma empacada nesse aqui.
Seria um exercício para abrir portas e fechar e depois contar quantas estão abertas .
Até ai tudo bem , porém ele pede para declarar 3 variaveis . (porta1 , porta2 , porta3) e no meu codigo eu não tenho controle de qual porta eu estou abrindo ou fechando!
Gostaria de uma ajuda . Obrigado

public class Casa {

	String cor;
	String porta1;
	String porta2;
	String porta3;
	boolean estaAberta;
	int qtd = 0;

	void abre() {
		this.estaAberta = true;
		qtd = qtd + 1;
		;
	}

	void fecha() {
		this.estaAberta = false;
		qtd = qtd - 1;
	}

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

	int quantasPortaEstaoAbertas() {
		return qtd;
	}
}

Agora o TestaCasa

public class TestaCasa {
	public static void main(String[] args) {

		Casa casa = new Casa();

		casa.pinta("azul");
		casa.abre();
		casa.fecha();

		casa.quantasPortaEstaoAbertas();
		System.out.println(casa.qtd);

	}
}

8 Respostas

T

Tu ta abrindo a casa e não a porta!

tu precisaria criar uma classe porta com os metodos abre e fecha;

e na classe casa tu criaria as variaveis assim:

Porta porta1; Porta porta2; Porta porta3;

e no main coloca

Casa casa = new Casa(); casa.pinta("azul"); casa.porta1.abre; casa.porta1.fecha();

entendeu

J

Ahhh , entendi.

No exercicio anterior eu tive que fazer a porta , mais nem pensei em usar ela aqui … .

Obrigado!

T

Nem te preocupa, no começo de OO é assim mesmo.

Luiz_Aguiar

Não coloque os título dos tópicos em maiúsculo… edite seu tópico!

J

Criei a classe porta peguei todos os dados que eu tinha na classe casa e coloquei na porta.

apenas deixei as tres variaveis Porta porta1. Porta porta2. Porta porta3.

Fui compilar e tomei NULLPOINTEREXCEPTION .
Não entendi o porque segue o codigo…

public class TestaCasa {
	public static void main(String[] args) {

		Casa casa = new Casa();
		Porta porta= new Porta();
		porta.pinta("azul");
		casa.porta1.abre();
		casa.porta1.fecha();

		porta.quantasPortaEstaoAbertas();
		System.out.println(porta.qtd);

	}
}

Os outros dois estão praticamente iguais ao que eu ja postei , apenas com a mudança que eu citei ali em cima.

T
porta1 = new Porta();

falta instanciar as variaveis da casa.

J

Obrigadoo .!

Funcionou certinho , mais eu ainda não entendi o porque de eu ter tomado a exception … ??

T

Tu tentou usar a porta1, mas ela estava apontando para null! porque tu não tinha instanciado ela.

Criado 4 de julho de 2011
Ultima resposta 4 de jul. de 2011
Respostas 8
Participantes 3