Obtener y establecer métodos en Java. ¿Cómo trabajan

Estoy tratando de comprender mejor de lo que he podido hasta ahora ... es ayudarme con la clase, pero no con ninguna tarea específica; Estoy buscando más información conceptual que no he encontrado en mi libro de texto o en los tutoriales. En un nivel puramente teórico, entiendo por qué la encapsulación es poderosa para la programación OO, pero necesito una mejor comprensión de lo que está sucediendo específicamente. Sigo confundiéndome acerca de la ruta a través de la cual fluyen los datos, y me pregunto de dónde estamos obteniendo y configurando los datos. Esperemos que esta no sea la excepción a la regla "no hay preguntas estúpidas".

Considerar

 public class Employee
 {
    private int empNum;
    public int getEmpNum()
    {   return empNum;   }
    public void setEmpNum(int Emp)
    {   empNum = emp;   }
 }

Mi interpretación de esto: usandoint Emp pasado de algún lado, establecemos la variable empNum declarada en elset... método. Nosotros entoncesget... esa variable y devolverla al método de llamada. ¿Es eso un buen entendimiento?

Considere más a fondo:

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);
     }
 }

Con esta clase, no necesito explícitamenteset una variable porque declarandonew Employee(123456789) envía automáticamente ese valor a laset... método. Losreturn en el método de empleado devuelve el valor resultante al método de llamada y hace que esa variable esté disponible, en este caso a la salida de mi cuadro de diálogo. ¿Tengo un control sobre eso?

Aquí es donde me confundo. Con mi entendimiento como se señaló anteriormente, que puede estar apagado, nunca puedo decidir el mejor lugar para poner la lógica. Por ejemplo: colocaría el cuadro de diálogo "ingresar número de empleado" en laEmployee class, con una condición para ejecutarse SOLO si el parámetro pasado al método era nulo. En mi opinión, según entiendo el flujo de datos, el propósito de la clase es obtener un número de empleado. Si no se proporciona uno por defecto, se debe crear uno. No estoy seguro de si este pensamiento son las mejores prácticas, o si me estoy preparando para problemas más tarde.

Me encantaría escuchar algunas ideas sobre si estoy o no entendiendo adecuadamente lo que está sucediendo.

Respuestas a la pregunta(10)

Su respuesta a la pregunta