@Berht
Начинающий Android Developer

Не могу понять: как использовать геттеры и сеттеры?

Открыл всего одну вкладку чтобы изучить геттеры и сеттеры, потом пришлось еще создать десяток вкладок в поисках понятной информации и объяснения кучи терминов и команд из статей. Помогите понять как работают геттеры и сеттеры.

Вот по этому примеру:

public class Cat {

   private String name;
   private int age;
   private int weight;

   public Cat(String name, int age, int weight) {
       this.name = name;
       this.age = age;
       this.weight = weight;
   }

   public Cat() {
   }

   public void sayMeow() {
       System.out.println("Мяу!");
   }

   public String getName() {
       return name;
   }

   public void setName(String name) {
       this.name = name;
   }


Код из сайта JavaRush. Объясните, пожалуйста, что делают команды get, set, this и return по примеру или приведите свой пример. Объяснения вроде "возвращает значение"(куда? Зачем? Что делает возвращенное значение?), "устанавливает, присваивает"(куда?), "получает"(и что дальше?) я понять не в силах. Спасибо!
  • Вопрос задан
  • 1088 просмотров
Решения вопроса 4
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Лучше прочитайте учебник, чем вкладки открывать. Толку больше будет.
Ответ написан
Комментировать
Compolomus
@Compolomus
Комполом-быдлокодер
В первую очередь это инкапсуляция, приватные свойства не доступны в наследниках, в сеттерах можно проводить валидацию
Ответ написан
Комментировать
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Я и сам, когда совсем недавно начинал не мог разобраться с геттерами, сеттерами и конструкторами и со многими другими понятиями. Вам правильно подсказали, что необходимо прочитать несколько книг.
Что касается геттеров и сеттеров, то вот, объяснение от новичка)))
Как понятно из название геттеры от слова Get (получить), а сеттеры от слова Set (задавать). Прибегать к геттерам и сеттерам стоит в ООП, а с учетом того, что java является типизированным языком и использует парадигму ООП, то геттеры и сеттеры активно используются в ней.
Зачем они нужны? Для этого вам необходимо изучить инкапсуляцию, модификаторы доступа и т.д. Например, если вы установите модификатор доступа private для примитивного типа, то этот примитивный тип не будет доступен из других классов. А что делать, если вам надо получить значение этого типа или наоборот, задать значение этому примитиву? Тогда прибегаем к геттерам и сеттерам. Создаем нужные геттеры и сеттеры в классе, где находится этот примитив и соответственно, создав новый instance этого класса в другом классе из которого хотим достучаться до нашего примитива можем использовать геттер или сеттер.
Если вы исопльзуете какой-либо IDE (в частности Intellij IDEA), то в нем есть возможность генерировать геттеры и сеттеры. Можно также подключить библиотеку Lombok, которая сама "создает" геттеры и сеттеры при компиляции. Но на начальных этапах лучше создавать вручную, дабы понять их структуру и их предназначение.
Ответ написан
@Shiftuia
Java-программист
Совсем простым языком:
Конструктор создает объект "Кошка" с заданным именем, возрастом и весом
this - текущий объект, в которые запишутся эти значения
Чтобы получить имя кошки используется геттер. Имя самой кошки вы изменить не сможете.
Чтобы изменить имя кошки используем сеттер.

Но вам бы книжку почитать, без знания азов дальше никак. Ну или видео на youtube посмотрите
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы