Duvida

Então galera, to com um programinha de empresa x funcionario, tenho 3 classes: empresa, funcionario e a classe Main, criei um array para os funcionario, com nome de empregados, a minha dificuldade estar no seguinte, na classe empresa criei um método getFuncionario(), método esse q recebe como parametros, a posição no array, e retorna o funcionário que se encontra naquela posição, o problema é q ele me retorna o seguinte: ProjetoFuncionario.Funcionario@1d8957f, e quero q retorne nome, departamento e rg. Alguem pode me ajudar?

// Classe Funcionario.

package ProjetoFuncionario;

public class Funcionario {

	private String nome;
	private String departamento;
	private float salario;
	private String dataEnt;
	private String rg;
	

	public Funcionario(){
		
	}
	
	public Funcionario (String nome, String departamento, float salario, String dataEnt, String rg)
	{
		this.departamento = departamento;
		this.nome = nome;
		this.salario = salario;
		this.dataEnt = dataEnt;
		this.rg = rg;
	}
	
	
	
	public void setnome (String n){
		
		this.nome = n;
		
	}
	
	public String getnome (){
		
		return this.nome;
		
	}
	
	public void setdepartamento (String d){
		
		this.departamento = d;
	}
	
	public String getdepartamento (){
		
		return this.departamento;
		
	}
	
	public void setsalario (float s){
		
		this.salario = s;
	}
	
	public float getsalario (){
		
		return this.salario;
	}
	
	public void setdataEnt (String d){
		
		this.dataEnt = d;
	}
	
	public String getdataEnt (){
		
		return this.dataEnt;
	}
	
	public void setrg (String rg){
		
		this.rg = rg;
	}
	
	public String getrg (){
		
		return this.rg;
	}
	
	
	
	void recebeAumento (float aumento){
		
		float novoSalario = this.salario + aumento;
		this.salario = novoSalario;
		
	}
	
	public float getcalculaGanhoAnual (){
		
		return this.salario * 12;
		
	}
	
	void mostra (){
		
		System.out.println("Nome: "+ nome);
		System.out.println("Departamento: "+ departamento);
		System.out.println("Salario: "+ salario);
		System.out.println("Data de Entrada: "+ dataEnt);
		System.out.println("RG: "+ rg);
	
	
	}
	
	
	
}

Classe Empresa

package ProjetoFuncionario;

public class Empresa {

	private String nome;
	private String cnpj;
	Funcionario[] empregados;
	int i = 0;
	
	Empresa (int tamanho,String nome, String cnpj)
	{

		empregados = new Funcionario [tamanho];
		this.nome = nome;
		this.cnpj = cnpj;
		
	}
	
	
	public void setnome (String nome)
	{
		
		this.nome = nome;
		
	}
	
	public String getnome ()
	{
		
		return this.nome;
		
	}
	
	public void setcnpj (String cnpj)
	{
		
		this.cnpj = cnpj;
		
	}
	
	public String getcnpj ()
	{
		
		return this.cnpj;
		
	}
	
	public Funcionario getFuncionario (int posicao)
	{
		
		return this.empregados [posicao];
		
	}
	
	
	boolean consulta(Funcionario f)
	{      
        for (int i = 0; i < this.empregados.length; i++) 
        {      
            if (f == empregados[i])
            {      
                System.out.println("Funcionario já trabalha nesta empresa");      
                return true;      
            }      
        }      
        System.out.println("O Funcionário não trabalha conosco");      
        return false;
	}
	
	
	void adiciona (Funcionario f)
		{
		if (i > 10){
			System.out.println("Cheio!");
		}
		
		else{
			
		this.empregados [i] = f;
		this.i++;
		
		}
	}
	
	void mostraEmpregados (){
		
		for (int i = 0; i < this.empregados.length; i++){
			if (empregados[i] != null){
				System.out.println("Funcionario na posição: "+ i);
				System.out.println("Nome: " + empregados[i].getnome() + " / " +" Depto: "  + empregados[i].getdepartamento() + " / " + " Salário: R$" + empregados[i].getsalario());
				
			}
			else
			{
			break;
			}	
		}	
	}
}

Classe main

package ProjetoFuncionario;

public class ClassePrincipal {

	public static void main (String args[]){
		
		
		//Instanciando os Objetos:
		
		Empresa empresa = new Empresa(4, "Yuri Tecnologia", "123456" );
		
		
		Funcionario f1 = new Funcionario("Artur","Almoxarifado", 1000, "14/02/2006", "2009897761512");
		
		
		Funcionario f2 = new Funcionario("Yuri", "Diretoria", 4000, "06/03/2000", "2007010111203");
		
		
		Funcionario f3 = new Funcionario("Raul", "Limpeza", 750, "11/02/2009", "1234135782237");
		
		empresa.adiciona(f1);
		
		System.out.println(empresa.getFuncionario(0));
		
		
		
	}
}
 System.out.println(empresa.getFuncionario(0).getNome()); 

não vai??

[]s,

Simples, sobreescreva o método toString();

[]'s

Pelo que vi , dependendo do numero de funcionarios, nao seria mais facil um ArrayList?

e alguem so me recorda HashMap, SetMap, pra nao ter Funcionario duplicado na lista nao me recordo qual usar,
e assim voce bloqueia 1 funcionario por CPF, RG sei la ?

cria um metodo que faça a impreção do jeito que voce quer,

Tipo

Nome: Fulano de Tal
RG:14 875152215
CPf: 148454
etc etc

Lol marcelo, q noobeza, eu sabia q era so uma besteirinha dessas, valeu parceiro =D pode analisar o código e ver se tem algo a mais a ser corrigido?

Gustavo, não usei arraylist pois n vi isto ainda, to estudando pela apostila da caelum, estou em herança ainda. Abraço =]

sim…dou uma olhada e vejo algo de diferente

boolean adiciona(Funcionario f) {  
        
       for(int i=0;i<funcionarios.length;i++){
              if(funcionarios[i] == null){  
                 funcionarios[i] = f;  
               return true;  
              }  
                
       }  
        return false;     //vetor cheio, pode fazer uma logica para que o vetor aumente, seria um exercicio bom de vetor   

ele vai colocar na primeira posição vazia do vetor, se ele não achar e que o vetor estorou