Студопедия
Главная страница | Контакты | Случайная страница

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

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

Читайте также:
  1. I. История применения лекарственных растений. Заготовка, сбор, сушка и хранение лекарственных растений
  2. I. Область применения
  3. III. Первоначальное накопление капитала (особенности, примеры)
  4. IV. Проблемы применения данной техники _
  5. Абсорбция. Общие сведения и области его применения.
  6. Актами применения права являются приговор суда по уголовному делу, нормативные указы Президента РФ и комментарии к кодексам.
  7. Ассортимент животных жиров, особенности их свойств, состава и применения в косметических изделиях.
  8. Бактериофаги. Определение. Использование в медицине.
  9. Билет№69. Прямое доказательство, его специфика. Привести примеры.
  10. Билет№71. Косвенное доказательство (от противного). Привести примеры.

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

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

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

Код и данные, которые составляют класс, называются членами класса. Данные, определенные в классе, называются переменными экземпляра (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();

}

}

 

public string ValueString

{

get { return valueString; }

set

{

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

valueDouble = tmp_value;

valueString = value;

}

}

}

 




Дата добавления: 2014-12-18; просмотров: 298 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав