![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Заблокирован
Регистрация: 27.08.2009
Сообщений: 569
|
![]()
Вот, вроде прочитал что такое инкапсуляция, но до конца не могу понять. Вот определение Википедии.
Код:
Код:
Инкапсуляция - это,когда я создал объект в закрытом разделе класса в функции мэин? То есть например я объявил в привате функцию Код:
А затем: Код:
Последний раз редактировалось Syltan; 07.10.2009 в 22:57. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Не совсем... Инкапсуляция это своего рода "сваливание в кучу" всех понятий связанных с некой сущностью. То есть, например, сущность "строка" может обладать такими свойствами как длина, представление(набор символов) и т.д. С другой стороны есть определённые операции, которые можно проводить над строкой. Можно всё это описать в обычном процедурном стиле, с использованием глобальных ф-ций и т.д., но лучше поместить всё это в отдельный контейнер(класс), который будет описывать все свойства сущности и методы их обработки. Для класса строки методами могут быть конкатенация, поиск в строке и т.д.
|
![]() |
![]() |
![]() |
#3 |
Заблокирован
Регистрация: 27.08.2009
Сообщений: 569
|
![]()
То есть, получается, что любой объект, созданный именем класса, является инкапсулированный? И не важно, этот объект создаётся, обратившись к закрытому разделу класса или открытому. Правильно?
|
![]() |
![]() |
![]() |
#4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Нет. Любой набор обьектов, методов, полей, собранный по некому критерию (в данном случае по принадлежности к классу) есть инкапсуляция. Это когда ты для неких данных пишешь некий код, и код этот работает только для этих данных, причем остальным обьектам не важно как эти данные обрабатываются.
Ты когда на машине едишь не заглядываешь же как там поршни двигаются в цилиндрах - тебе важна сама езда, так вот поршни, каленвал, бензобак и прочее инкапсулированы в класс автомобиль. И водила не обязан знать как все это работает. Ясно?
I'm learning to live...
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
![]()
Класс - это как тип переменной. Объект - это как сама переменная.
Эта "переменная" составная, состоящая из данных и функций. К некоторым данным нельзя обратиться напрямую, например так: Timer1.Enabled = true; но это можно сделать с помощью функций-посредников (которые также являются членами класса): Timer1.Start(); Такое сокрытие переменных - очень важный аспект инкапсуляции. В основном блоке программы у тебя не будет 10000 глобальных переменных, которые придется как-то разруливать, а будет стройная иерархия. |
![]() |
![]() |
![]() |
#6 |
Заблокирован
Регистрация: 27.08.2009
Сообщений: 569
|
![]() Код:
Например class P Я создам P a,b,c; Это есть инкапсуляция? |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
![]()
Нет, инкапсуляция это вот что:
Код:
P a; x = a.n; а такой будет верный: P a; x = a.get(); |
![]() |
![]() |
![]() |
#8 |
Заблокирован
Регистрация: 27.08.2009
Сообщений: 569
|
![]()
Тоесть это когда я создал объект именем класса P, тоесть объект а, а затем обратился именно к закрытому полю класса, через функцию, которая является членом этого класса.
|
![]() |
![]() |
![]() |
#9 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Переведи слово encapsulation - герметизация, запаковывание во что-то. Когда ты купил пиво , батон, колбасу - ты ложешь их в пакет, ты их в пакет инкапсулируешь. Куда пакет туда и продукты. Цитата:
I'm learning to live...
|
||
![]() |
![]() |
![]() |
#10 |
Заблокирован
Регистрация: 27.08.2009
Сообщений: 569
|
![]()
Обращение объектов именно к закрытому полю privat,через функции-членны класса, есть инкапсуляция, или к открытому тоже?
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Инкапсуляция | 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 |