Duvida Na Invocação de Arrays

6 respostas
G

Bom pessoal fiz um pequeno programa, mas eu ainda nao aprendi a como invocar a array.
como exmeplo eu acho que fiz tudo certinho, mas como faço pra adicionar uma nova porta?
já tentei Exemplo: p1.adicionaNovaPorta(p1, "Azul", 50, 80);

class Porta {
 double dimensaoDaPortaX;
 double dimensaoDaPortaY;
 String corDaPorta;
 boolean portaAbrirFechar;
}

class Casa {
	double dimensaoDaCasaX;
	double dimensaoDaCasaY;
	String corDaCasa;
	Porta[] porta;
	static int contadorDaPorta;
	
	void adicionaNovaPorta(Porta novoNomeDaPorta, String novaCorDaPorta, double novaDimensaoDaPortaX, double novaDimensaoDaPortaY ) {
		this.porta[contadorDaPorta] = novoNomeDaPorta;
		this.porta[contadorDaPorta].corDaPorta = novaCorDaPorta;
		this.porta[contadorDaPorta].dimensaoDaPortaX = novaDimensaoDaPortaX;
		this.porta[contadorDaPorta].dimensaoDaPortaY = novaDimensaoDaPortaY;
		contadorDaPorta ++;
	}
}

class ProgramaPrincipal {
	public static void main(String args[]) {
		Casa casa = new Casa();
		casa.porta = new Porta[3];
		
		
	}
}

6 Respostas

nel

Qual erro você está tendo ?
Não gosto muito (nem um pouco) desse modelo de implementação. Algo como isso, não seria mais legível?

class Porta {
 //seus atributos
 Porta[] portas;

 public Porta(int qtdadePortas) {
     portas = new Porta[qtdadePortas];
 }
  
 void adicionaNovaPorta(Porta porta) {
     this.portas[posicao] = porta;
 }
}

Acho mais OO nesse formato. Mas enfim, é um exemplo de modificação pra voce. Até porque, não vejo sentido eu adicionar uma porta e informar a dimensão da casa. Porque eu tenho que saber a dimensão da casa quando adiciono uma porta?

G
nel:
Qual erro você está tendo ? Não gosto muito (nem um pouco) desse modelo de implementação. Algo como isso, não seria mais legível?
class Porta {
 //seus atributos
 Porta[] portas;

 public Porta(int qtdadePortas) {
     portas = new Porta[qtdadePortas];
 }
  
 void adicionaNovaPorta(Porta porta) {
     this.portas[posicao] = porta;
 }
}

Acho mais OO nesse formato. Mas enfim, é um exemplo de modificação pra voce. Até porque, não vejo sentido eu adicionar uma porta e informar a dimensão da casa. Porque eu tenho que saber a dimensão da casa quando adiciono uma porta?

Obrigado pela imediata resposta...

Sim, neste formato é mais façil, mas teve um exemplo na apostila que seria mais OO, fazendo tudo isto no adiciona, Mas como sempre cada um trabalha de um jeito só aprender a trabalhar com oque mais acha confiável.

Mas ainda nao aprendi como eu posso invocar uma array. Nao é um erro, o programa está funcionando perfeitamente, mas o unico problema é como eu posso inicializar e utilizar a array.

asousaj

Guilherme, estas estudando OO?
Não é boa ideia deixar as variaveis expostas para outras classes, leia sobre encapsulamento :wink:

Não vi sentido no nove da variavel “novoNomeDaPorta”, onde entra “Nome” na porta? Sempre use nomes que realmente façam sentido, não seria “novaPorta” ou apenas “porta”.

Bons estudos!

Rodrigo_Sasaki
public static void main(String[] args) throws Exception{
		String[] strArray = {"A", "B", "C"}; // Inicializo um array de String de 3 posições, com as mesmas ja populadas.
		System.out.println(strArray[2]); // Imprimo o terceiro item do array, o índice começa no 0
		
		strArray = new String[3]; // Inicializo um array de 3 posições, porém as mesmas ainda são nulas.
		strArray[0] = "A"; // Inicializo a primeira posição do Array
		strArray[1] = "B"; // Inicializo a segunda posição do Array
		strArray[2] = "C"; // Inicializo a terceira posição do Array
		
		for(int i=0 ; i<strArray.length ; i++){
			System.out.println(strArray[i]); // Percorro todas as posições do Array, imprimindo o valor contido
		}
	}
asousaj

*** EDIT
Não atualizei a tela. Tinha postado praticamente o mesmo que o digaoneves. Porem com menos detalhes :smiley:

G

asousaj:
Guilherme, estas estudando OO?
Não é boa ideia deixar as variaveis expostas para outras classes, leia sobre encapsulamento :wink:

Não vi sentido no nove da variavel “novoNomeDaPorta”, onde entra “Nome” na porta? Sempre use nomes que realmente façam sentido, não seria “novaPorta” ou apenas “porta”.

Bons estudos!

Ainda não comecei estudar sobre encapsulamento. mas vou começar, orbigado pela Dica =)


digaoneves
public static void main(String[] args) throws Exception{
String[] strArray = {“A”, “B”, “C”}; // Inicializo um array de String de 3 posições, com as mesmas ja populadas.
System.out.println(strArray[2]); // Imprimo o terceiro item do array, o índice começa no 0

strArray = new String[3]; // Inicializo um array de 3 posições, porém as mesmas ainda são nulas.  
strArray[0] = "A"; // Inicializo a primeira posição do Array  
strArray[1] = "B"; // Inicializo a segunda posição do Array  
strArray[2] = "C"; // Inicializo a terceira posição do Array  
  
for(int i=0 ; i<strArray.length ; i++){  
    System.out.println(strArray[i]); // Percorro todas as posições do Array, imprimindo o valor contido  
}

}

obrigado pela explicação =)

Obrigado a todos já entendi

Criado 16 de julho de 2012
Ultima resposta 16 de jul. de 2012
Respostas 6
Participantes 4