Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Конец описания. Объединение полей данных и процедур и функций, работающих с этими данными

Читайте также:
  1. Quot;Наконец, братия (мои), что только истинно, что честно, что справедливо, что чисто, что любезно, что достославно, что только добродетель и похвала, о том помышляйте".
  2. БОЛЬШАЯ АМБИЦИЯ И ЖАЛКИЙ КОНЕЦ
  3. Буратино наконец возвращается домой вместе с папой Карло, Мальвиной, Пьеро и Артемоном
  4. В. Г. Гаршин. Конец 1930-х гг.
  5. Ведущий:И, наконец, всю полноту ответственности за вас все одиннадцать лет несла директор гимназии Карташова Ольга Сергеевна
  6. Возникновение политических партий конец XIX – начало XX вв.: их программы, тактики, ли­деры.
  7. Генка в три прыжка оказался в соседней комнате. Там тоже валялись трупы — два или три. Но, наконец, он увидел живую.

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

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

С другой стороны доступ к объекту регламентируется и должен выполняться через специальный интерфейс (рис.).

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

Статическое создание объектов выполняется в процессе компиляции программы, а статическое уничтожение – при завершении программы: объект удаляется из памяти вместе с программой.

Динамическое создание и уничтожение объектов выполняется в процессе работы программы специальными командами.

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

Пример

Сокрытие реализации класса (класс Файл). В соответствии с результатами объектной декомпозиции файл должен реагировать на следующие сообщения: «Открыть», «Добавить запись», «Найти запись».

Каждое сообщение должно дополняться необходимой информацией. Так, сообщение «Открыть» должно сопровождаться передачей имени файла. Сообщение «Добавить запись» должно сопровождаться передачей текста записи, состоящей из двух частей: фамилии абонента или названия организации и телефона. Сообщение «Найти запись» должно сопровождаться передачей фамилии абонента или названия организации, по которым должен быть найден телефон. Каждому сообщению должен соответствовать метод, объявленный в интерфейсной части класса и реализующий требуемые действия.

Метод «Открыть» должен выполнять открытие указанного файла для выполнения операций ввода-вывода. Операция открытия файла требует указания файловой переменной. Поскольку при выполнении операций с этим файлом в дальнейшем должна будет использоваться та же файловая переменная, целесообразно описать ее в секции реализации класса, где она будет доступна методам данного объекта, но не доступна из других объектов программы.

Метод «Добавить» должен проверять наличие открытого файла и сообщать пользователю о невозможности выполнения операции с закрытым файлом. Если же файл открыт, метод должен выполнить добавление записей в файл. Для выполнения проверки необходимо хранить информацию об открытии файла, для этого можно использовать специальное поле «Состояние файла», которое также можно объявить в секции реализации.

Метод «Найти» также вначале должен проверять, открыт ли файл. Если файл открыт, метод выполняет поиск информации в файле. Операции проверки открытия файла выполняются в методах «Добавить» и «Найти» идентично, их можно выделить в отдельный метод «Проверка открытия», который можно описать в секции реализации.

Для инициализации поля «Состояние файла» (в исходном состоянии файл закрыт) можно использовать специальный метод, традиционно с этой целью используется конструктор. При завершении программы файл необходимо закрыть. Операция закрытия может быть описана в деструкторе.

Окончательно для реализации объекта Файл можно предложить класс следующей структуры:

Класс Файл:


Дата добавления: 2015-09-06; просмотров: 173 | Нарушение авторских прав


Читайте в этой же книге: Объектная декомпозиция | Объекты и сообщения | Конец описания. | Композиция при разработке классов | Наполнение при разработке классов | Делегирование методов | Контейнерные классы | Цикл-пока <очередной элемент> определен | Исключения при разработке классов |
<== предыдущая страница | следующая страница ==>
Т: Классы| Простой полиморфизм

mybiblioteka.su - 2015-2024 год. (0.008 сек.)