П_1_3_ООП
.pdf●Понятие ООП
●Инкапсуляция
●Классы
●Зоны видимости
●Поля
Понятие ООП
ООП (объектно-ориентированное программирование) —
парадигма программирования, в которой основными понятиями являются объекты и классы
В отличие от процедурного языка программирования С, язык С++ поддерживает данную парадигму программирования
Преимущества ООП
●Классы позволяют проводить конструирование из полезных компонент, обладающих простыми инструментами, что дает возможность абстрагироваться от деталей реализации.
●Данные и методы вместе образуют определенную сущность и они не «размазываются» по всей программе, как это нередко бывает в случае процедурного программирования.
●Локализация кода и данных улучшает наглядность и удобство сопровождения программного обеспечения.
●Защита наиболее критичных данных от несанкционированного доступа.
Классы
Класс является описываемой моделью ещё не существующей сущности (объекта). Фактически он описывает устройство объекта.
Сам объект — это экземпляр класса.
Синтаксис класса
class имя_класса{ public: //зона видимости
//поля и методы private: //зона видимости
//поля и методы protected: //зона видимости
//поля и методы
};
Зоны видимости
●Public – доступ открыт всем, кто видит определение данного класса.
●Private – доступ открыт самому классу (т.е. функциям-членам данного класса) и друзьям (friend) данного класса, как функциям, так и классам.
●Protected – доступ открыт классам, производным от данного.
Инкапсуляция
Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали реализации от пользователя.
Реализацией инкапсуляции в C++ является разграничение зон видимости (доступа)
Описание класса
class clStudent{ public:
char name[100]; //имя
int spec; //код специальности int marks[10]; //оценки
clStudent(); //конструктор по умолчанию clStudent(int specCode);//конструктор void study(); //метод: учиться
};
Конструкторы
сlStudent::clStudent(){ cout<<"input name - "; cin>>name;
} /*конструктор по умолчанию*/
сlStudent::clStudent(int specCode){ cout<<"input name - "; cin>>name;
spec = specCode;
}
Методы
void сlStudent::study(){ for (int i=0; i<10; i++){ cout<<"input mark - ";
cin>> mark[i];
}
}