Методы Get и Set в Java. Как они работают?

Я пытаюсь получить лучшее понимание, чем я мог до сих пор ... это чтобы помочь мне с классом, но не с каким-либо конкретным домашним заданием; Я ищу более концептуальную информацию, которую я не нашел ни в своем учебнике, ни в учебниках. На чисто теоретическом уровне я понимаю, почему инкапсуляция эффективна для ОО-программирования, но мне нужно лучше понять, что именно происходит. Я постоянно путаюсь с тем, по какому пути протекают данные, и удивляюсь, откуда мы получаем и устанавливаем данные ОТ. Надеемся, что это не исключение из правила «нет глупых вопросов».

Рассмотреть возможность:

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

Моя интерпретация этого: использованиеint Emp передается откуда-то, мы устанавливаем объявленную переменную empNum вset... метод. Мы тогдаget... эту переменную и вернуть его вызывающему методу. Это хорошее понимание?

Далее рассмотрим:

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

С этим классом мне не нужно явноset переменная, потому что объявляяnew Employee(123456789) автоматически отправляет это значениеset... метод.return в методе Employee возвращает результирующее значение вызывающему методу и делает эту переменную доступной, в данном случае для вывода моего диалогового окна. У меня есть ручка на это?

Вот где я запутался. С моим пониманием, как отмечалось выше - что может быть не так - я никогда не могу выбрать лучшее место для размещения логики. Например: я бы поместил диалоговое окно «введите номер сотрудника» вEmployee класс, с условием запуска ТОЛЬКО, если параметр, переданный методу, был нулевым. На мой взгляд, насколько я понимаю поток данных, цель этого класса - получить номер сотрудника. Если он не указан по умолчанию, его нужно создать. Я не уверен, является ли это мышление наилучшей практикой или я готовлюсь к неприятностям позже.

Я хотел бы услышать некоторые мысли о том, правильно ли я понимаю, что происходит.

Ответы на вопрос(5)

Ваш ответ на вопрос