Mir Mir Ответов: 3

Геттеры и сеттеры инкапсуляции


Может ли кто - нибудь объяснить мне это?
Что означает взлом кода?

Смысл для сеттеров (и геттеров тоже) заключается в том, что вы можете изменить свое мнение позже, не нарушая чей-либо код

Что я уже пробовал:

Я просто не могу понять его смысла

3 Ответов

Рейтинг:
2

raddevus

Это довольно непонятно question...so я попытаюсь перефразировать то, что, как мне кажется, вы спрашиваете.

Почему один человек сказал мне: "геттеры() и сеттеры() позволяют вам изменить свое мнение позже, не нарушая чей-либо код"?

Я полагаю, что они пытаются дать вам знать, что если разработчик класса предоставляет методы getter() и setter (), то позже значения могут быть изменены, и код не нуждается в изменении.

Поскольку вы упоминаете их как геттеры() и сеттеры (), я предполагаю, что вы говорите о Java, поэтому вот пример:

public class Animal {
  private string name;
  private int age;
  public Animal (string name, int age){
     this.age = age;
     this.name = name;
  }
}


Без геттеров() и сеттеров() приведенный выше код может только считывать и/или устанавливать значения возраста и имени при построении объекта.

Однако если вы добавите методы доступа (геттеры и сеттеры), то сможете установить значения после построения объекта. И вы сможете прочитать эти значения.

это мое лучшее предположение.


Рейтинг:
2
Рейтинг:
2

Greg Utas

"Добытчики" часто не вызывают возражений. Проприетарный язык, на котором я работал в течение многих лет, на самом деле имел readable контроль доступа, что означало, что элемент данных можно было читать без необходимости писать для него геттер.

"Сеттеры" часто вызывают возражения. Они могут оставить объект в противоречивом состоянии или затруднить развитие его поведения. Например, изменение одного члена часто должно совпадать с изменением другого члена, или изменение должно быть сообщено наблюдателям, которые реализуют побочные эффекты, и так далее. Язык, который позволяет легко объявить сеттера, на мой взгляд, никому не делает одолжения. Когда у меня есть сеттер, я часто использую его даже внутри самого класса, потому что сеттеры имеют привычку эволюционировать за пределы бессмысленных однострочников, которые просто устанавливают новое значение.