Boa tarde, lembrando um pouco de encapsulamento ,lembre-se que se você não definir suas variáveis como "private" sua classe vai ficar vulnerável.
Levando em consideração que você os métodos getters e setters ficaria assim
public class Funcionario {
private String nome;
private Departamento departamento;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Departamento getDepartamento() {
return departamento;
}
public void setDepartamento(Departamento departamento) {
this.departamento = departamento;
}
}
Se você tem um "setDepartamento" que recebe um departamento obviamente, não faz sentido você instanciar o objeto na declaração, pois ele vai ser sobreposto quando você chamar o "setDepartamento".
Vamos criar a class Departamento.
public class Departamento {
private String nome;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
Vamos criar uma classe para testar agora.
public class TestePrograma {
public static void main(String[] args) {
Funcionario funcionario = new Funcionario();
Departamento departamento = new Departamento();
departamento.setNome("RH");
funcionario.setNome("Fulano");
funcionario.setDepartamento(departamento);
System.out.println(funcionario.getDepartamento().getNome());
}
}
Quando o método "setDepartamento" é chamado já recebe um objeto instanciado.
Espero que eu tenha ajudado..