Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> getters and setters 
:(
    Опции темы
docmai
Дата 5.11.2010, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 10.9.2010

Репутация: нет
Всего: нет



Простите, не нашел в гугле внятного описания соответствующий функций? Что это такое? И как этим пользоваться в Intellij IDEA?
PM MAIL   Вверх
_Y_
Дата 5.11.2010, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



В моем представлении это полусленговые слова определяющие методы классов, не содержащие какого-либо кода (почти), а просто дающие доступ к атрибутам. Например класс A с приватным атрибутом attr может быть снабжен публичными геттером и сеттером:
Код

class A{

   private int attr;

   public int get_attr(){
      return attr;
   }

   public void set_attr(int attrIn){
      attr = attrIn;
   }
}



--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
nc30
Дата 6.11.2010, 07:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Интересующийся :)
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 24.6.2010
Где: Санкт-Петербург

Репутация: 5
Всего: 8



docmai, начну немного издалека.

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

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

ГЕтеры (getters) - сленговое название методов доступа (accessors) к полям объекта. Гетеры могут лишь просматривать поля экземпляра, не изменяя их.

СЕтеры (setters) - соответственно, модифицирующие (mutators) методы, которые могут изменять поля экземпляра.

Каждому полю может (не обязательно должна) быть назначена пара гетер/сетер. Имена этих методов обычно начинаются с префиксов get/set (is/set для boolean), далее следует имя поля, с которым взаимодействует метод.

Необходимо помнить о том, что в соответствии с Конвенцией: "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).
Пример бина:
Код

public class PersonBean implements java.io.Serializable {
    private String name;
    private boolean deceased;
 
    // Конструктор по умолчанию (без аргументов).
    public PersonBean() {}
 
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    // Различные семантики для логического поля (is или get)
    public boolean isDeceased() {
        return deceased;
    }
     
    public void setDeceased(boolean deceased) {
        this.deceased = deceased;
    }
}

PM MAIL   Вверх
docmai
Дата 6.11.2010, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 10.9.2010

Репутация: нет
Всего: нет



Большое спасибо за ответы!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.