русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Объекты и их жизненный цикл. Создание и уничтожение объектов.


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


В объектно-ориентированном языке при связывании кода и данных создается объект. Код, данные или обе эти составляющие объекта могут быть закрытыми внутри него или открытыми. Закрытый код или закрытые данные известны лишь остальной части этого объекта и доступны только ей. Это означает, что к закрытому коду или данным не может получить доступ никакая другая часть программы, существующая вне этого объекта. Если код или данные являются открытыми, к ним (несмотря на то, что они определены внутри объекта) могут получить доступ другие части программы.

Объекты — это экземпляры класса. Класс — это логическая абстракция. О ее реализации нет смысла говорить до тех пор, пока не создан объект класса, и в памяти не появилось физическое его представление. Данные содержатся в переменных экземпляров, а код — в методах.

Рассмотрим создание объекта на примере класса Person.

Person pers = new Person;

Оператор new вызывает конструктор класса Person. Для pers создается ссылка со значением null. Затем в динамической памяти создается объект. Ссылка привязывается к созданному объекту. Если объект не используется, на него нет ни одной ссылки, то сборщик мусора его удаляет (освобождает память, занимаемую данным объектом). Для корректного удаления сборщик мусора вызывает деструктор, который проверяет, например, все ли ресурсы, используемые объектом, освобождены.

Также можно для уничтожения объектов использовать методы Finalize() и Dispose().

 

Инкапсуляция. Определение. Функциональное назначение. Реализация. Примеры применения

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



Код, данные или обе эти составляющие объекта могут быть закрытыми внутри него или открытыми. Закрытый код или закрытые данные известны лишь остальной части этого объекта и доступны только ей. Это означает, что к закрытому коду или данным не может получить доступ никакая другая часть программы, существующая вне этого объекта. Если код или данные являются открытыми, к ним (несмотря на то, что они определены внутри объекта) могут получить доступ другие части программы. Как правило, открытые части объекта используются для обеспечения управляемого интерфейса с закрытыми элементами. Основной единицей инкапсуляции в С# является класс. Класс определяет форму объекта. Он задает как данные, так и код, который будет оперировать этими данными.

В С# класс используется для создания объектов. Объекты — это экземпляры класса. Таким образом, класс — это по сути набор шаблонных элементов, которые показывают, как построить объект.

Код и данные, которые составляют класс, называются членами класса. Данные, определенные в классе, называются переменными экземпляра (instance variable), а код, который оперирует этими данными, — методами-членами (member method), или просто методами. "Метод" — это термин, применяемый в С# для обозначения подпрограммы.

Инкапсуляция, или утаивание информации, — это возможность скрыть внутреннее устройство объекта от его пользователей, предоставив через интерфейс доступ только к тем членам объекта, с которыми клиенту разрешается работать напрямую. Инкапсуляция подразумевает наличие границы между внешним интерфейсом класса (открытыми членами, видимыми пользователям класса) и деталями его внутренней реализации. Преимущество инкапсуляции для разработчика в том, что он может открыть те члены класса, которые будут оставаться статичными, или неизменяемыми, скрыв внутреннюю организацию класса, более динамичную и в большей степени подверженную изменениям. Как уже говорилось, в С# инкапсуляция достигается путем назначения каждому члену класса своего модификатора доступа — public, private или protected. Инкапсуляция позволяет изменить реализацию объекта без модификации основной части программы, если его интерфейс остался прежним. Простота модификации является важным критерием качества программы. Инкапсуляция позволяет использовать объект в другом окружении и быть уверенным в том, что он не испортит не принадлежащие ему области памяти, а также создавать библиотеки объектов для применения во многих программах.

Пример:

class EncapsulationExample

{ Private double valueDouble;

Private string valueString;

Public double Value

{get { return valueDouble; }

Set {valueDouble = value;

valueString = value.ToString(); }}

publicstring ValueString

{get { return valueString; }

Set {double tmp_value = Convert.ToDouble(value); //здесь может возникнуть исключение

valueDouble = tmp_value;

valueString = value; }}}

 

Инкапсуляция. Свойства. Функциональное назначение. Реализация. Создание индексатора. Примеры применения.

Инкапсуляция — это механизм, объединяющий данные и обрабатывающий их код как единое целое. Инкапсуляцией называется включение различных мелких элементов в более крупный объект, в результате чего программист работает непосредственно с этим объектом. Это приводит к упрощению программы, поскольку из нее исключаются второстепенные детали. Инкапсуляцию можно сравнивать с работой автомобиля с точки зрения типичного водителя. Многие водители не разбираются в устройстве авто, но управляют им. Существует специальный интерфейс, который упрощает сложные операции работы двигателя, тормоза. Сказанное относится к инкапсуляции и ООП — многие подробности внутреннего устройства скрываются от пользователя, что позволяет ему сосредоточиться на решении конкретных задач. В ООП эта возможность обеспечивается классами, объектами и различными средствами выражения связей между ними.



<== предыдущая лекция | следующая лекция ==>
Деструкторы класса | В C# для инкапсуляции используются публичные свойства и методы объекта


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.445 сек.