Eu mesmo fiz o diagrama da foto para treinar mesmo o conceito de herança
a codificação está logo abaixo:
package com.br.funcionario;
public class Funcionario
{
private String nome;
private String cpf;
private String dataNascimento;
private double salario;
private boolean funcao;
private int qtdeDiretor;
private int qtdeOp;
private Diretor diretor;
private Operario operario;
public Funcionario(String nome,String cpf,String dataNascimento,double salario,boolean funcao)
{
this.nome=nome;
this.cpf=cpf;
this.dataNascimento=dataNascimento;
this.setFuncionarioCategoria(funcao);
}
public Funcionario()
{
}
public String getFuncionario()
{
return this.toString();
}
public int getQuantidadeDiretores()
{
return this.qtdeDiretor;
}
public int getQuantidadeOperarios()
{
return this.qtdeOp;
}
public void setFuncionarioCategoria(boolean funcao)
{
if(funcao)
{
double salario=10.000;
salario=(salario==10.000)?salario+=5000:salario;
diretor = new Diretor(salario,"Criar relátorios mensais");
this.qtdeDiretor++;
}
else
{
double salario=2.000;
salario=(salario==10.000)?salario+=1000:salario;
operario= new Operario(salario,"cortar madeira");
this.qtdeOp++;
}
}
public String toString()
{
return this.nome+" "+this.cpf+" "+this.dataNascimento+this.diretor.getDiretor();
}
}
package com.br.funcionario;
public class Diretor extends Funcionario
{
private String tarefas;
private double salario;
public Diretor(double salario,String tarefas)
{
this.salario=salario;
this.tarefas=tarefas;
}
public String getDiretor()
{
return super.getFuncionario()+" "+this.tarefas+" "+this.salario;
}
public void setDiretor(String tarefas,double salario)
{
this.salario=salario;
this.tarefas=tarefas;
}
}
package com.br.funcionario;
public class Operario extends Funcionario
{
private String tarefas;
private double salario;
public Operario(double salario,String tarefas)
{
this.salario=salario;
this.tarefas=tarefas;
}
public String getOperario()
{
return super.getFuncionario()+" "+this.tarefas+" "+this.salario;
}
public void setOperario(String tarefas,double salario)
{
this.salario=salario;
this.tarefas=tarefas;
}
}
package com.br.funcionario;
public class TestaFuncionario
{
public static void main(String args[])
{
Funcionario chama = new Funcionario("Flavio","[telefone removido]","26/12/1900",1522,true);
System.out.println(chama.getFuncionario());
}
}
estou tentando chamar o método
getFuncionario() mais não estou conseguindo alguém pode me ajudar…?
o erro que o eclipse me indica é nesta linha:
return this.nome+" “+this.cpf+” "+this.dataNascimento+this.diretor.getDiretor();
neste caso deveria dar certo pois eu já instanciei um objeto da classe
Diretor é ele não está mais apontando para null já tem a referência
do objeto na memória, mais o eclipse me acusa um erro NullPointerException mas não sei porque.
