Por que não recebe o valor no parametro?

Bom dia a todos!!

pessoal estou com uma probleminha, bom vou esplicar do inicio.

Construi uma classe funcionario, os atributos: nome, salario, rg etc. compilei e testei deu tudo serto.
criei uma classe empresa com os atributos nome cnpj , um Array de Funcionatio e o metodo adicionar exemplo:

class Empresa{
String nome;
String cnpj;
Funcionario[] funcionarios;

void adicionar(Funcionario f, int posição){
this.funcionarios[posição] = f;
}
Ate aqui tudo bem, criei uma classe para teste chamada diretorio exemplo:

class Diretorio{
public Static void main(String args[]){
Empresa empresa = new Empresa();
empresa.funcionarios = new Funcionario[10];
Funcionario fun = new Funcionario();

fun.salario = 1000;
empresa.adicionar(fun, 3);

       for(int i = 0;i<funcionarios.Length;i++)
             System.out.println(empresa.funcionarios[i]);

}

eu consigui compilar e executar, mas o problema e que o metodo adicionar não tá recebendo o valor do parametro f >>>> void adicionar(Funcionario f, int posição)

na tela aparece da seguinte forma

null
null
null
Funcionarioss12351 >>> mais ou menos assim. A posição ele recebeu mais o salario de 1000 não por que
null
null
null
null
null
null

Muito obrigado.

Sempre coloque seus códigos entre as tags CODE!

http://www.guj.com.br/posts/list/50115.java <<<<<<<<<<<<<<<<<

[code]class Diretorio {

public static void main(String[] args) {
    Empresa empresa = new Empresa();
    empresa.funcionarios = new Funcionario[10];
    Funcionario fun = new Funcionario();

    fun.salario = 1000;
    empresa.adicionar(fun, 3);

    for(int i = 0;i<empresa.funcionarios.length;i++) //Você está acessando uma variável de Empresa aqui. Precisa usar o objeto para acessar.
        if (empresa.funcionarios[i] != null) //Verifica se existe algo na posição escolhida
            System.out.println(empresa.funcionarios[i].salario); //Imprime o salário
    
}

}

class Empresa{
String nome;
String cnpj;
Funcionario[] funcionarios;

void adicionar(Funcionario f, int posição){
    this.funcionarios[posição] = f;
}

}

class Funcionario {
int salario;
public Funcionario(){}

}[/code]

eros, tudo bem
no momento estou na Empresa trabalhando, mas creio que o problema esta: empresa.funcionario[i] o correto e da forma que você mostra: empresa.funcionario[i].salario. vou imprimir a pagina e levar pra casa e tentar resolver muito obrigado.

[quote=jolivier]eros, tudo bem
no momento estou na Empresa trabalhando, mas creio que o problema esta: empresa.funcionario[i] o correto e da forma que você mostra: empresa.funcionario[i].salario. vou imprimir a pagina e levar pra casa e tentar resolver muito obrigado.[/quote]

Bom, a lógica você aplica da maneira que VOCÊ achar melhor. Isso é entre você e seu empregador… quanto ao código que eu postei ele está rodando corretamente, de acordo com o que você queria, segundo seu post. Teste e quaisquer novas dúvidas, poste aqui.

Abraço.