Справочник от Автор24
Поделись лекцией за скидку на Автор24

Объектно-ориентированное программирование. Понятие класса. Основные принципы

  • 👀 220 просмотров
  • 📌 190 загрузок
Выбери формат для чтения
Статья: Объектно-ориентированное программирование. Понятие класса. Основные принципы
Найди решение своей задачи среди 1 000 000 ответов
Загружаем конспект в формате ppt
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Объектно-ориентированное программирование. Понятие класса. Основные принципы» ppt
Лекция 10 Объектно-Ориентированное Программирование Классы Понятие класса Основное понятие объектноориентированного программирования – это понятие о классе. Начальные определения: Класс – это тип данных, определяемый программистом, в котором объединяются данные и функции их обработки. Начальные определения: Конкретные переменные типа данных «класс» называются экземплярами класса или объектами. Начальные определения: Класс содержит константы и переменные, называемые полями, а также выполняемые над ними функции. Функции класса называются методами. Поля и методы являются элементами или членами класса. К основным принципам ООП относятся: 1) Инкапсуляция – это объединение данных и обрабатывающих их методов внутри одного класса. К основным принципам ООП относятся: Инкапсуляция автоматически подразумевает защиту данных. • Для этого в классе используется спецификатор раздела private, содержащий данные и методы, доступные только для самого класса. • Если данные и методы содержатся в разделе public, они доступны извне класса. • Раздел protected содержит данные и методы, доступные из класса и любого его производного класса. К основным принципам ООП относятся: То есть элементы класса могут быть частными (private), общими (public) и защищенными (protected). К общим элементам программа может обращаться, используя оператор точку (.). К основным принципам ООП относятся: Все поля класса по умолчанию закрытые (private), то есть программа, использующая данный класс, не может обратиться к данным класса. Как тогда обратиться к данным класса, то есть, как занести значения в данные класса или вывести их значения? К основным принципам ООП относятся: Для этого используются методы класса. Методы класса должны быть общедоступными (public). То есть, методы класса делают открытыми, и тогда с помощью этих методов можно обращаться к данным класса. К основным принципам ООП относятся: 2) Наследование – обозначает, что объекты могут получать свои данные и методы от других объектов (которые в таком случае называются объектами-предками). К основным принципам ООП относятся: Эти данные и методы могут сохраняться в неизменном виде, либо быть изменены. Кроме того, объекты-наследники могут ввести в свой состав дополнительно новые данные и методы. К основным принципам ООП относятся: Наличие наследников позволяет говорить об иерархии классов, где есть классы - родители - шаблоны для создания классов - потомков. К основным принципам ООП относятся: 3) Полиморфизм – подразумевает, что методы различных объектов могут иметь одинаковые имена, но отличаться по своему содержанию. Это получается в результате переопределения какого-либо метода объекта-предка в объекте-наследнике. К основным принципам ООП относятся: В таком случае, при обращении к одному и тому же методу в объекте-предке и в объекте-наследнике может привести к разным результатам. Пример класса: class EMPLOYEE { private: //закрытые члены класса int emp_id; // Номер служащего char name[64]; // Фамилия служащего float salary; // Зарплата служащего public: // открытые члены класса void assign_values( int, char*, float); // прототип метода класса, который заносит // значения в переменные класса void show_values(void) // метод класса, выводящий информацию на экран }; { } printf("Employee_id: %d\n“, emp_id); printf("Name: %s\n“, name); printf("Salary: %f.2\n“, salary); Пример класса: Реализация метода – это тело метода (функции). Методы класса можно реализовывать как внутри самого класса, так и вне класса. • Метод void show_values(void) реализован внутри класса • А у метода void assign_values( int, char*, float) в классе описан только прототип, а сам он релизован вне класса. Пример класса: // метод класса, который заносит значения в переменные класса, реализован вне класса void EMPLOYEE::assign_values(int e_id, char *e_name, float e_salary) { emp_id = e_id; strcpy_s(name, e_name); salary = e_salary; } Пример класса: • :: - оператор глобального разрешения, показывает принадлежность метода данному классу • int e_id, char *e_name, float e_salary – формальные параметры в заголовке метода, при вызове метода из внешней функции принимают фактические, т.е. конкретные данные, с которыми и выполняется реализация метода. Пример класса: //Работа внешней функции с классом void program_1(void) { EMPLOYEE boss; boss.assign_values(1, "Ivanov Ivan",50000.0); boss.show_values(); } Пример класса: • Данные можно также ввести с клавиатуры, прочитать из файла, из базы данных. • Их можно вывести на экран, в файл, в базу данных. При создании класса реализацию метода класса (тело самой функции) можно включать в описание класса – тогда она называется встраиваемой. Если встраиваемых методов много, то описание класса становится громоздким, это неудобно. И тогда в класс записывается только прототип метода, а реализация метода выносится пределы описания класса. Вне класса перед именем метода надо писать имя класса и оператор глобального разрешения :: void EMPLOYEE::assign_values(int e_id, char *e_name, float e_salary) Но если в программе используется много классов и их методов тоже много? Тогда файл становится большим. Значит, информацию нужно распределить по нескольким файлам. В Microsoft Visual Studio это реализовано следующим образом: Пример класса 2 Определить класс с именем STUDENT, содержащий следующие поля: • • • Фамилия и инициалы Номер группы Средний балл Определить методы доступа к этим полям. Алгоритм создания класса в Visual Studio: Создать класс STUDENT_CLASS следующим образом: Menu → Project Add Class → Generic C++ Class). При этом создадутся 2 дополнительных файла: 1) STUDENT_CLASS.h – файл заголовок. В этом файле должно помещаться объявление (описание) класса. Файл STUDENT_CLASS.h #pragma once class STUDENT_CLASS { public: // ===== Открытые методы класса STUDENT_CLASS(); // Конструктор класса ~STUDENT_CLASS(void); // Деструктор класса // ===== Методы класса void assign_values(char*, char*, float); // Метод класса, присваивающий значения закрытым void show_student(void); данным класса // Метод класса, выводящий на экран значения закрытых данных класса private: // ===== Закрытые данные класса char FIO[64]; //=== Фамилия и инициалы char Nomer[16]; //=== Номер группы float SrBall; //=== Средний балл }; В языках программирования С/C++ #pragma once — нестандартная, но широко распространенная препроцессорная директива, разработанная для контроля за тем, чтобы конкретный исходный файл при компиляции подключался строго один раз. 2) STUDENT _CLASS. cpp - В этом файле реализация конструктора, деструктора и методов класса. //Реализация метода класса, присваивающего значения закрытым данным класса void STUDENT_CLASS::assign_values(char *st_FIO, char *st_Nomer, float st_SrBall) { strcpy_s(FIO, st_FIO); strcpy_s(Nomer, st_Nomer); SrBall = st_SrBall; } //Реализация метода класса, выводящего на экран значения закрытых данных класса void STUDENT_CLASS::show_student(void) { } printf("FIO: %s\n“, FIO ); printf("Nomer: %s\n“, Nomer); printf("SrBall: %.2f\n“, SrBall); Внешняя функция, использующая класс void program_2(void) { // Объявление экземпляра (объекта) Student_1 класса STUDENT_CLASS STUDENT_CLASS Student_1; //=== Вызов метода класса, присваивающего значения закрытым данным класса 4.9); Student_1.assign_values("Petrov Petr", "PS181", //=== Вызов метода класса, выводящего на экран значения закрытых данных класса } Student_1.show_student(); Конец!
«Объектно-ориентированное программирование. Понятие класса. Основные принципы» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач

Тебе могут подойти лекции

Смотреть все 588 лекций
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot