Tá, estou a uma hora e meia quebrando a cabeça pra saber o que está errado nisso.Comecei agora em POO e escolhi o Java como a línguagem inicial a se estudar o POO e Java, ou seja, estou aprendendo os dois ao mesmo tempo.A duvida é o seguinte:
Tem os seguintes códigos abaixo, o primeiro parece ser o mais problematico, os 3 são classes que (pelo menos deveriam) relacionam entre sí.Sempre que tento atribuir o valor de uma classe à um metodo que está na outra classe acaba dando erro dizendo que os ponteiros são nulos.
Não estou a procura de exercicios resolvidos, tanto é que esse exercicio é da apostila da Caelum que uso pra estudo próprio em casa, o que realmente quero é uma explicação do que está dando errado, ou melhor, o que eu estou fazendo errado.Qualquer sugestão é bem vinda, até mesmo o código resolvido(iria perder a graça do meu exercicio mas eu REALMENTE não consigo achar o que está errado aí).
[code]public class Empresa
{
String cnpj;
Funcionario[] empregados;
public void adiciona(Funcionario f)
{
this.empregados[0] = f; //Não sei em qual array armazenar a variavel sendo que vou
//armazenar mais de uma vez.Sempre que tento compilar
//fala que o ponteiro é nulo
}
}
[/code]
Essa é a class em que o ponteiro está dando problema, vide os comentários feitos por mim;
[code]public class TesteEmpresa
{
public static void main(String[] args)
{
Empresa empresa = new Empresa();
//empresa.empregados = new Funcionario[10];
//Funcionario[] f1 = new Funcionario[10];
Funcionario f2 = new Funcionario();
f2.salario = 100;
//f1[0] = f2;
empresa.adiciona(f2);
}
}
[/code]
Essa é a class que…hmm…que eu queria armazenar os dados naquele vetor onde se situa o ponteiro problematico.
public class Funcionario
{
String nome;
String departamento;
double salario;
Data dataEntrada = new Data();
String RG;
String endereco;
boolean estaNaEmpresa;
void bonifica(double aumento)
{
this.salario+= aumento;
}
void demite()
{
this.estaNaEmpresa = false;
}
void mostra()
{
System.out.println("Nome: "+this.nome);
System.out.println("Entrada em "+this.dataEntrada.dia+"/"+this.dataEntrada.mes+"/"+this.dataEntrada.ano);
System.out.println("Departamento: "+this.departamento);
System.out.println("Salário: "+this.salario);
System.out.println("RG: "+this.RG);
System.out.println("Endereço: "+this.endereco);
}
}
Novamente, qualquer ajuda é bem vinda, sorry por alguma má formatação no post ou afins.
