Problemão com Array de Objeto para chamar um novo Metodo

Galera sou novo em Java… Estou apenas na minha segunda aula e estou com uma duvida tremanda que nao consigo resolver…

Por isso veho ao GUJ pedir ajuda!!!

É o Seguinte eu lendo uma Lista de Exercicios de um cara aqui em 2007 tinha um exercicio que pedia para criar um objeto de uma classe Casa

dai eu criei a classe casa

[code]public class Casa extends Porta
{

String cor;
boolean[] porta = new boolean[2];

}[/code]

extends de outra classe que eu tbm ja tinha criado a Porta

[code]public class Porta
{
boolean estaAberta;
int dimX , dimY , dimZ;
String cor;

	void Estado(boolean estado)
	{
		if (estado == true)
		{
			System.out.println("Você Abriu a porta!!");
		}
		else
		{
			System.out.println("Você fechou a porta!!");
		}
	}
	
	
	void estaAberta()
	{
		if (estaAberta == true){
			System.out.println("Porta Aberta!");}
		else{
			System.out.println("Porta Fechada!");
		}
	}
	
	void Pintar(String x)
	{
		cor = x;
		System.out.println("A porta agora é: " +cor);
	}

}[/code]
Dai o problema… agora estou na minha classe main!!

e ai logo no começo meu problema

[code]public class CasaTeste {

public static void main(String[] args) 
{
	
	Casa home = new Casa();
	
	home.porta[0] = true; // porta 1 aberta
	home.porta[1] = true; // porta 2 aberta
	
	home.porta[0] = Estado(false); // <--- ERROO 1
                                home.porta[0] =  estaAberta(); // <--- ERRO 2
}

}[/code]

O ERRO 1 Eu consegui mudei para home.Estado(false)

Agora o ERRO2 nao consigo alguem ajuda? obrg

Gente consegui concertar o erro 2 fazendo assim:

[code]
public class CasaTeste {

public static void main(String[] args) 
{
	
	Casa home = new Casa();
	
	home.porta[0] = true; // porta 1 aberta
	home.porta[1] = true; // porta 2 aberta
	
	home.porta[0] = home.Estado(false);
	
	boolean teste = home.porta[0];
	
	home.estaAberta = teste;
	
	home.estaAberta();

}

}[/code]

Tem uma forma mais pratica? assim fica muito confuso…

Seu Array armazena um booleans - OK

boolean[] porta = new boolean[2]; 

Seu método imprime, NÃO retorna nada…

void estaAberta() { if (estaAberta == true){ System.out.println("Porta Aberta!");} else{ System.out.println("Porta Fechada!"); } }

Você não pode fazer isso, pois seu método não retorna um boolean

home.porta[0] =  estaAberta(); // <--- ERRO 2 

Segue seu método corrigido…como sua variável estaAberta não foi declarada…inclui ela no parâmetro do método pq vc criou ela mas em nenhum momento do seu código ela vai receber um valor true.
Então qdo vc chamar o método vc diz se ela está aberta ou fechada… com a chamada home.estaAberta(true ou false), dai sim adiciona o retorno do método no seu vetor…

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

Valeu Irmão!

Obrigado vou fazer as Mudanças! :lol:


Mais ae como eu posso criar objetos dentro de arrayz

Exemplo:

Eu tenho a home.porta[0]

Agora eu quero pintar ela com ometodo pintar como ficaria?

home.porta[0].cor = (“Azul”);

No caso seria o Objeto do Objeto? Não entendi esta parte alguem pode ajuda? abraço!