Rabochy_stol / 3 инкапсуляция и расширяемость типов
.docx3 инкапсуляция и расширяемость типов.
Инкапсуляция явл одним из главных понятив в ооп,
Ооп это совокупность понятий (класс, объект, инкапсуляция, полиморфизм и т.д.) и приемов их использования.
Инкапсуляция данных – логическое связывание данных с конкретной операцией. Она означает, что данные явл не глобальными, а локальными – доступными только части программы . инкапсуляция подразумевает защиту данных. Для этого в структуре class используется идентификатор раздела private , содержащий данные и методы , доступные только для самого класса. Если данные и методы содрежатся в разделе public, они доступны извне класса. Раздел protected содержит данные и методы, доступные из класса и любого его производного класса. Наличие последних позволяет говорить об иерархии классов, где есть классы – родители – шаблоны для создания классов – потомков. Объекты, полученные из описания класса наз экземплярами этого класса.
class CPerson { protected: string m_name; // имя public: void SetName(string n){m_name=n;}// устанавливает имя string GetName(){return (m_name);} // возвращает имя };
общедоступные – public – компоненты доступны в люб части программы, они могут использоваться любой функцией как внутри класса так и вне её. Доступ извне осуществ через имя объекта.
Имяобекта.имячленакласса;
Ссылканаобъект.имячленакласса;
Указательнаобъект - > имячленакласса;
Собственные – private – компоненты локализованы в классе и не доступны извне. Они могут использоваться функциями –членами данного класса и функ друзьями того класса, в котором они записаны.
Защищенные – protected – компоненты доступны внутри класса и в производных класса.защищенные компоненты нужны тлько в том случае построения иерархии классов. Они используются также как и private – члены , но дополнительно могут исползоваться функ – членами и функ – друзьями классов, производных от описанного класса.
Изменить статус доступа к компонентам класса можно и с помощью использования в определении класс а ключевого слова class. В этом случае все компоненты класса по умолчанию являются собственными.