Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что такое икапсуляция???? 
:(
    Опции темы
Dr.No_xXx
  Дата 26.2.2005, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Что такое икапсуляция?????
я пропустил эту тему по болезни!!! smile
PM MAIL   Вверх
<Spawn>
Дата 26.2.2005, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

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



Попросту говоря это скрытие некоторой логики класса в его области видимости(или видимости наследников). То есть внешняя среда не сможет обращаться к инкапсулированому коду. Существует инкапсуляция для сохранности заложеной в класс логики, для непротиворечивости данных и алгоритмов класса.smile К примеру, ты разрабатываешь какой то класс, в котором используется численное обозначение дня недели и для верности вводимых данных можно скрыть доступ к переменной, оградив ее возможные значения защитным алгоритом:) Т.е.

Код

TMyClass = class
private
 FWeek: integer;

 procedure SetWeek(const Value: integer);
public
 constructor Create;

 property Week: integer read FWeek write SetWeek;
end;

constructor TMyClass.Create;
begin
 //В кострукторе производим установку доступного для переменной значения
 FWeek := 1;
end;

procedure TMyClass.SetWeek(const Value: integer);
begin
 //Ограничиываем возможные значения
 if (Value < 1) or (Value > 7) then
   raise Exception.CreateFmt('Указано неверное значение дня недели - %d', [Value]);
 FWeek := Value;
end;


Код метода SetWeek скрывает прямой доступ к переменной FWeek, осуществляя предварительную проверку верности нового значения, причем доступ к переменной FWeek из внешей среды не разрешен, так как она находится в секции с квантором видимости private. Вот это и есть инкапсуляция.
Это, кончено, простой случай, но думаю, что понятный.

Это сообщение отредактировал(а) <Spawn> - 26.2.2005, 17:02


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Dr.No_xXx
Дата 26.2.2005, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



СПАСИБО ТЕПЕРЬ ПОНЯЛ smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

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


 




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


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

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