| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > getters and setters |
| Автор: docmai 5.11.2010, 22:18 |
| Простите, не нашел в гугле внятного описания соответствующий функций? Что это такое? И как этим пользоваться в Intellij IDEA? |
| Автор: _Y_ 5.11.2010, 23:04 | ||
В моем представлении это полусленговые слова определяющие методы классов, не содержащие какого-либо кода (почти), а просто дающие доступ к атрибутам. Например класс A с приватным атрибутом attr может быть снабжен публичными геттером и сеттером:
|
| Автор: nc30 6.11.2010, 07:05 | ||
| docmai, начну немного издалека. Инкапсуляция - один из фундаментальных принципов ООП, подразумевающий объединение данных (полей) и операций над ними (методов) в одном классе. Основной принцип инкапсуляции, упрощенно говоря, заключается в запрещении прямого доступа к полям экземпляра (объекта) данного класса из экземпляров других классов. Программы должны взаимодействовать с данными объекта только с помощью методов этого объекта. ГЕтеры (getters) - сленговое название методов доступа (accessors) к полям объекта. Гетеры могут лишь просматривать поля экземпляра, не изменяя их. СЕтеры (setters) - соответственно, модифицирующие (mutators) методы, которые могут изменять поля экземпляра. Каждому полю может (не обязательно должна) быть назначена пара гетер/сетер. Имена этих методов обычно начинаются с префиксов get/set (is/set для boolean), далее следует имя поля, с которым взаимодействует метод. Необходимо помнить о том, что в соответствии с http://www.oracle.com/technetwork/java/codeconv-138413.html: "Methods should be verbs, in mixed case with thefirst letter lowercase, with thefirst letter of each internal word capitalized." Т. е. имена любых методов в Java нужно оформлять с использованием т. н. "верблюжьего стиля" (camel case). Для формирования навыка правильного написания классов имеет смысл обратить внимание на модель JavaBeans (не путать с Enterprise JavaBeans). Пример бина:
|
| Автор: docmai 6.11.2010, 13:44 |
| Большое спасибо за ответы! |