Métodos Get e Set em Java. Como eles funcionam
Estou tentando entender melhor do que consegui até agora ... é para me ajudar com a aula, mas não com qualquer tarefa específica; Estou procurando informações mais conceituais que não encontrei no meu livro ou nos tutoriais. Em um nível puramente teórico, entendo por que o encapsulamento é poderoso para a programação OO, mas preciso entender melhor o que está acontecendo especificamente. Continuo me confundindo sobre o caminho pelo qual os dados fluem e me pergunto de onde estamos obtendo e configurando dados. Espero que essa não seja a exceção à regra "não há perguntas estúpidas".
Considerar
public class Employee
{
private int empNum;
public int getEmpNum()
{ return empNum; }
public void setEmpNum(int Emp)
{ empNum = emp; }
}
Minha interpretação disso: Usandoint Emp
passado de algum lugar, definimos a variável empNum declarada noset...
método. Nós entãoget...
nessa variável e retorne-a ao método de chamada. Isso é um bom entendimento?
Considere ainda:
import.javax.*
public class CreateEmp
{
public static void main(String[] args)
{
int ssn;
ssn = JOptionPane.showInputDialog(null,"enter ssn");
Employee newEmp = new Employee(123456789);
JOptionPane.showMessageDialog(null,"Employee ID " + newEmp.getEmpNum);
}
}
Com esta classe, não preciso explicitamenteset
uma variável porque declararnew Employee(123456789)
envia automaticamente esse valor para oset...
método. Oreturn
no método Employee retorna o valor resultante para o método de chamada e disponibiliza essa variável, nesse caso, para a saída da minha caixa de diálogo. Eu tenho um controle sobre isso?
Aqui é onde eu fico confuso. Com o meu entendimento, como observado acima - o que pode estar errado - nunca consigo decidir o melhor lugar para colocar a lógica. Por exemplo: eu colocaria a caixa de diálogo "inserir número do funcionário" noEmployee
class, com uma condição para executar ONLY se o parâmetro passado para o método for nulo. Na minha opinião, ao entender o fluxo de dados, o objetivo da classe é obter um número de funcionário. Se um não for fornecido como padrão, será necessário criar. Não tenho certeza se esse pensamento é uma prática recomendada ou se estou me preparando para problemas mais tarde.
Adoraria ouvir algumas opiniões sobre se estou entendendo corretamente o que está acontecendo.