Por que não recebe o valor no parametro?

3 respostas
jolivier

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.

3 Respostas

eros.stein

Sempre coloque seus códigos entre as tags CODE!
>>>>>>>>>>> http://www.guj.com.br/posts/list/50115.java <<<<<<<<<<<<<<<<<

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(){}
    
}
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.

eros.stein

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.

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.

Criado 10 de setembro de 2008
Ultima resposta 10 de set. de 2008
Respostas 3
Participantes 2