Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kenishi

referencia à arrays

Recommended Posts

Estou estudando JAVA por uma apostila da Caelum, e segui bem até o capítulo de arrays, qdo o exercício pede que crie um array para referenciar a classe Funcionário, copiei o código abaixo, vocês podem me ajudar em como fazer essa referência de forma correta? a classe main está vazia.

 

 

package TesteArray;

 

 

class Funcionario {

 

int codigo;

 

String nome;

 

String setor;

 

double salario;

}

 

class Empresa{

 

String nome;

 

Funcionario[] funcionarios = new Funcionario[10];

 

funcionarios[0] = new Funcionario(); ==> Pau de compilação (==><==)

 

 

 

void escreve(){

 

System.out.println("\t FUNCIONARIO ");

 

}

 

 

 

}

 

 

 

Como faço para conseguir acessar o funcionários[0].algumaCoisa dentro da classe Empresa?????

 

 

 

Se retiro a linha funcionarios[0] = new Funcionario(); funciona, inclusive a referência feita no main ao método escreve.

 

Obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nessa linha voce criou 10 objetos do tipo funcionario.

 

Funcionario[] funcionarios = new Funcionario[10];

Para diferenciar os 10 objetos voce acessa os métodos e atributos da classe referenciando também o índice da variável funcionarios.

Na main instancie empresa e faça isso:

 

System.out.println(funcionarios[0].nome);

 

Essa linha realmente está errada.

 

funcionarios[0] = new Funcionario(); ==> Pau de compilação (==><==)

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kandrare,

 

entendi o que você disse, mas o que estou tentando fazer é com que o método

 

void escreve(){

 

System.out.println("\t FUNCIONARIO ");

 

}

 

Escreva o nome de todos os funcionários da empresa, algo do tipo

 

void escreve(String nome){

 

System.out.println(nome);

 

for ( int i = 0; i <= this.funcionarios.length; i++ ){

System.out.println(this.funcionarios.nome);

}

 

 

Ele compila, mas dá erro em run time. :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode utilizar a classe List, pois facilita o trabalho com arrays de objetos

 

// criação do list

 

List<Funcionario> listFuncionario = new ArrayList<Funcionario>();

 

// adicionando um funcionario ao list

 

Funcionario f = new Funcionario();

 

listFuncionario.add(f);

 

// consultando o list

 

for(Funcionario funcionario : listFuncionario)

{

System.out.println(funcionario.getNome());

}

 

Flwww, grande abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim

 

 

package TesteArray;

public class Funcionario {

	private int codigo;

	private String nome;

	private String setor;

	private double salario;
		
	// getters..
	
	// setters	
}

public class Empresa{

	private String nome;

	private List<Funcionario> funcionarios = new ArrayList<Funcionario>();

	// getters...
	
	//setters...
	
	public void addFuncionario(Funcionario funcionario)
	{
		this.funcionarios.add(funcionario);
	}
	
	
	public void listarTodosFuncionarios()
	{
		for(Funcionario funcionario : this.funcionarios)
		{
			System.out.println(funcionario.getNome());
		}	
	}

		public static void main(String[] args)
		{
			Empresa empresa = new Empresa();
			
			Funcionario funcionario1 = new Funcionario();
			funcionario1.setNome("Funcionário 1");
			empresa.addFuncionario(funcionario1);
			
			Funcionario funcionario2 = new Funcionario();
			funcionario2.setNome("Funcionário 2");
			empresa.addFuncionario(funcionario2);
			
			empresa.listarTodosFuncionarios();
		}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu to no mesmo exercicio e to com dificuldade em criar o array

...

tipo, fica dando erro nessa classe List, fala que nao existe, tem como disponibilizar ela ou ela ja vem no pacote do java?

 

meu código ta assim:

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

package Apostila_FJ11_Conta;

 

class Empresa {

 

String nome;

String cnpj;

String endereco;

Funcionarios[] Funcionarios = new Funcionarios[10];

 

void adiciona(Funcionarios f){

for (int i = 0; i < 10;i++){

this.Funcionarios = f;

}

 

}

 

void mostra() {

for ( int i = 0; i <= this.Funcionarios.length; i++ ){

System.out.println(this.Funcionarios.nome);

}

 

}

 

}

 

ele ta rodando normal.. mas eu queria saber, como que eu vou fazer sem definir o tamanho da array..

colocar ela como se fosse infinita, ir aumentando de acordo com for aumentado os funcionarios...

 

 

 

vlw galera

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele ta rodando normal.. mas eu queria saber, como que eu vou fazer sem definir o tamanho da array..

colocar ela como se fosse infinita, ir aumentando de acordo com for aumentado os funcionarios...

Use o exemplo acima.

Para usar List e ArrayList importe o pacote java.util.

 

import java.util.*

Compartilhar este post


Link para o post
Compartilhar em outros sites

o vlw aii.. deu certo aki agora

 

 

soh to com duvida em como vou criar as Getters e Setters =S

 

to começando a programar agora... sou bem inexperiente ainda

hehehe

 

 

desd ja agradeço

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom....primeiramente os Getters e Setters são métodos responsáveis por retornar/modificar o valor de uma variável de instancia.

Além de criar os métodos voce precisa do modificador private nas variáveis de instancia.

 

Um exemplo:

 

class Human{
	private int idade;
	// setter
	public void setIdade(int idade){
		this.idade = idade;
	}
	// getter
	public int getIdade(){
		return this.idade;
	}
}

Tem muito mais a se falar dos setters e getters.

Se quiser maiores detalhes nos pergunte ou procure no google algum material.

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.