Методы 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
класс, с условием запуска ТОЛЬКО, если параметр, переданный методу, был нулевым. На мой взгляд, насколько я понимаю поток данных, цель этого класса - получить номер сотрудника. Если он не указан по умолчанию, его нужно создать. Я не уверен, является ли это мышление наилучшей практикой или я готовлюсь к неприятностям позже.
Я хотел бы услышать некоторые мысли о том, правильно ли я понимаю, что происходит.