Array e Objeto ( Resolvido )

1 resposta
L

Srs, bom dia!

Estou tentando referenciar um array de um objeto. Temos as classes: Funcionário, Empresa e testaFuncionario.

No objeto Empresa eu faço uma referencia de um array de funcionário e tenho dois métodos add e mostra,

class Empresa
{
	//Atributos
	Funcionario[] employe; //Referencia de array para classe Funcionário
	
	
	//Metodo Adciona 
	void add( Funcionario f )
	{
		for( int i = 0; i < employe.length; i++ )
		{
			employe[ i ] = f;
		}	
	}//Fim do método
	
	//Metodo Impressão
	void mostra()
	{
		for( int i = 0; i < employe.length; i++ )
		{
			System.out.println( employe[ i ] );
		}				
	}//Fim do método	
}//Fim da classe

No objeto Funcionário, tenho um método que recebe um valor para salário,

class Funcionario
{
	//Atributos da classe
	Double salario;	
	
	//Método configura salário
	void salario( double salario )
	{
		this.salario = salario;		
		
	}//Fim do método	
}//Fim da classe

No objeto main faço as instâncias para os objetos e estou tentando passar Funcionário como referência para meu array dentro de empresa.

public class testaFuncionario
{
	public static void main( String[] args )
	{
		//Cria instância para objeto empresa
		Empresa empresa = new Empresa();
		empresa.employe = new Funcionario[ 2 ]; //Definição de posições do array
		
		//Cria instância para objeto Funcionário
		Funcionario f1 = new Funcionario();
		f1.salario ( 100 );
		empresa.add( f1 );
		empresa.mostra();		
	}//Fim do método main	
}//Fim da classe

Questão: fiz alguns testes e observei que quando eu envio (f1) para método add no objeto empresa ele está como null. Este é um exercício que costa na apostila da Caelum no capitulo de array. Se alguém conseguir ajudar, eu gostaria de agradecer antecipadamente.

1 Resposta

L

Srs, boa tarde!

Consegui solucionar meu problema, após algumas consultas na Web. Se alguém conseguir resolver de uma outra forma, favor compartilhar. Abraço.

import java.util.Scanner;

public class testaFuncionario
{
	public static void main( String[] args )
	{
		//Instância dos Objetos
		Empresa empresa = new Empresa( "Gimba", 54651 );
		Funcionario func[] = new Funcionario[2];
		Scanner input = new Scanner( System.in );
		
		//Inclusão dos Registros 
		for( int i=0; i < func.length; i++ )
		{
			func[ i ] = new Funcionario();
			System.out.print( "Nome:" );
			func[ i ].nome = input.nextLine();
			System.out.print( "Depto:" );
			func[ i ].depto = input.nextLine();
			empresa.add( func[ i ] );					
		
		}//Fim loop FOR
		
		//Chama metódo de impressão
		empresa.impressao();				
				
	}//Fim do metódo main	
		
}//Fim da Classe Main

//Inicio da classe Empresa
class Empresa
{
	//Atributos da classe
	String razaoSocial;
	int cnpj;
	int cont=0;
	Funcionario[] func = new Funcionario[2]; //Vetor da classe Funcionário	
	
	//Construtor
	public Empresa( String nome, int codCnpj )
	{
		razaoSocial = nome;
		cnpj = codCnpj;
		Funcionario[] func = new Funcionario[2];
								
	}//Fim do construtor	
	
	//Configura a razão Social da empresa
	void setNomeEmpresa( String nome )
	{
		razaoSocial = nome;
	
	}//Fim do método set
	
	//Retorna a razão Social da empresa
	String getNomeEmpresa()
	{
		return razaoSocial;
	
	}//Fim do método Get
	
	//Inclusão de Funcionários
	void add( Funcionario f )
	{
		func[ cont ] = f;
		cont++;		
	
	}//Fim da classe Add
	
	//Impressão dos registros
	void impressao()
	{
		System.out.printf( "Razão Social:%s\nCNPJ:%d\n", razaoSocial, cnpj );
		
		impressaoFunc();//Chamada para metódo de impressão dos funcionários			 	
	
	}//Fim do metódo impressão
	
	//Imprime funcionários
	void impressaoFunc()
	{
		for( Funcionario funcionario : func )
		{
			System.out.printf( "Funcionário:%s\nDepto:%s\n", funcionario.nome, funcionario.depto );
		}	
	}//Fim do metódo impressão Func			
}//Fim da classe Empresa

//Inicio da classe Funcionário 
class Funcionario
{
	//Atributos da classe
	String nome;
	String depto;
					
	//Configura o nome do funcionário
	void setNomeFunc( String theNome )
	{
		nome = theNome;
	
	}//Fim do método set
	
	//Retorna o nome do funcionário
	String getNomeFunc()
	{
		return nome;
	
	}//Fim do método Get		
}//Fim da classe Funcionário

Obs: se houver dúvida quanto essa solução, estou á disposição.

Criado 9 de setembro de 2014
Ultima resposta 10 de set. de 2014
Respostas 1
Participantes 1