|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.10.2009, 13:38 | #11 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Это относится не только к классам. Строго говоря инкапсуляция не свойство ООП, а свойство структурного программирования. Когда данные принадлежат опредленным структурным единицам (классы, процедуры, функции) и доступ к ним осуществляется только с помощью механизмов самой структурной единицы.
Аналогично, к локальной переменной процедуры нельзя полуить прямой доступ не из данной процедуры. Вот такая вот загогулина.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
08.10.2009, 13:55 | #12 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
08.10.2009, 14:02 | #13 |
Заблокирован
Регистрация: 27.08.2009
Сообщений: 569
|
То есть,всё что описано в закрытом и открытом разделе класса, есть инкапсуляция. А когда мы создаём экземпляр класса, тоесть объект, он является инкапсулированный.Может так?
Последний раз редактировалось Syltan; 08.10.2009 в 14:05. |
08.10.2009, 14:07 | #14 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
"Сынок, я дал тебе пять яблок..." :D
Инкапсуляция - это общее понятие, концепция такая. Нельзя сказать "вот тут у нас еще инкапсуляция, а вот тут она уже закончилась". |
08.10.2009, 14:21 | #15 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
08.10.2009, 14:34 | #16 |
Заблокирован
Регистрация: 27.08.2009
Сообщений: 569
|
Код:
Данные - это переменные, описанные в самом классе, а не в функциях. Инкапсуляция - это использование экземпляра класса, то есть объекта, который мы получили из-за объеденения даных и код в класс и скрываем реализацию этого объекта? А так правильно? Последний раз редактировалось Syltan; 08.10.2009 в 14:39. |
08.10.2009, 14:41 | #17 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Не правильно. См. пост #11. Выкинь из головы классы. Инкапсуляция это намеренное сокрытие данных. Знаешь как у американских военных? Если тебе для выполнения задания не нужна эта информация, то ты ее знать НЕ ДОЛЖЕН. Вот это и есть принцип, разделяй и властвуй. Создал экземпляр класса и все его внутренние данные доступны только ему (если специально не укзано что-то другое). Второй экземпляр этого же класса не сможет использовать данные первого, если это специально не предусмотрено. Если твои данные и код содержатся не в классе, а в функции это не значит, что инкапсуляция на нее не распрастраняется. Функция имеет определенные интерфейс - обозначение, количество, порядок следования и тип параметров, а также тип возвращаемого результата. А каким образом она достигает результат остальных функций волновать не должно и они не знают о том, какие структуры данных использует для этого данная функция и более того знать им этого не полагается.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 08.10.2009 в 14:49. |
08.10.2009, 15:41 | #18 |
Заблокирован
Регистрация: 27.08.2009
Сообщений: 569
|
1)
Код:
2) Инкапсуляция - скрытие всех, полей, которые использовались для создания этого объекта? |
08.10.2009, 16:21 | #19 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Икапсуляция - это не только скрытие полей. Отбросьте вы уже классы! Это более общее понятие и рассматривать его следует вне зависимости от ООП. инкапсуляция - это сокрытие механизма работы участка кода от остальных. Речь идет не только о переменных, но и об внутреннем устройстве объекта (опять же не только экземпляра класса). Иными словами чтобы использовать объект Вам нужно только знать его интерфейс и НЕ БОЛЕЕ ТОГО. Я не знаю как работают API-функции, но мне не мешает это их использовать. Ясно? Мне по-барабану - функция ли перед мной, обертка над другой функцией, или это чей-то метод. Я знаю как ее использовать и этого достаточно для получения результата.
Аналогично и в жизни. Я знаю общие принципы работы компьютера, но использую его гораздо эффективней очень большого количества людей, потому что для его использования не требуется его полное описание. Достаточно описать функции устройства и способы управления. Это и называется инкапсуляцией.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 08.10.2009 в 16:24. |
08.10.2009, 16:26 | #20 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Инкапсуляция | psycho-coder | Общие вопросы Delphi | 4 | 14.08.2009 13:04 |
Инкапсуляция пакетов TCP/IP | bumerung | Общие вопросы C/C++ | 2 | 06.06.2009 23:19 |
ООП инкапсуляция | albatros | Общие вопросы Delphi | 2 | 03.02.2009 08:28 |
Инкапсуляция | Lyxor | Общие вопросы Delphi | 0 | 29.06.2008 13:06 |