Opa boa tarde!! Ah sim agora entendi.
Ao que aprendemos em programação o processamento é feito linha por linha sequencialmente. Por isso me confundi na execução dessa linha
UsuarioDto usuario = objUsuarioDAO.consultarUsuario(IdFunc);
na forma sequencial pensei que primeiro deveria enviar IdFunc para o método
objUsuarioDAO.consultarUsuario(IdFunc); instanciando a classe UsuarioDAO objUsuarioDAO = new UsuarioDAO();
// Obtém o ID do usuário informado na tela
int IdFunc = Integer.parseInt(txtUsuarId.getText());
// Cria o DAO para recuperar os dados do usuário
UsuarioDAO objUsuarioDAO = new UsuarioDAO();
objUsuarioDAO.consultarUsuario(funcId);
e somente depois de executar o método
public UsuarioDto consultarUsuario (int idFunc)
é que poderia executar a linha
UsuarioDto usuario = objUsuarioDAO.consultarUsuario(funcId);
recebendo os dados para UsuarioDto na variavel usuario