Объектно-ориентированное программирование. Класс

Содержание

Слайд 2

Объектно-ориентированное программирование Объектно-ориентированное программирование - это один из способов подхода к программированию.

Объектно-ориентированное программирование

Объектно-ориентированное программирование - это один из способов подхода к программированию.


Слайд 3

Объектно-ориентированное программирование Класс – это определенный пользователем тип данных. Он содержит

Объектно-ориентированное программирование

Класс – это определенный пользователем тип данных. Он содержит описания

типов членов класса и набор операций для манипулирования такими объектами.
Объект - это логическая единица, которая содержит данные и правила обработки этих данных. Объект является экземпляром класса.
Слайд 4

Класс В языке C++ для того, чтобы определить объект (object), надо

Класс

В языке C++ для того, чтобы определить объект (object), надо сначала

определить его форму (шаблон) с помощью ключевого слова class. Понятие класса напоминает понятие структуры.
Слайд 5

Класс class имя класса{ описание полей класса };

Класс

class имя класса{
описание полей класса
};

Слайд 6

Спецификаторы доступа Public: этот спецификатор делает поля и методы класса общедоступными.

Спецификаторы доступа

Public: этот спецификатор делает поля и методы класса общедоступными.
Private: данный

спецификатор информирует о том, что следующие за ним компоненты класса доступны лишь только внутри класса.
Protected: компоненты описанные с таким спецификатором могут быть доступны лишь функциям класса или классов-наследников
Слайд 7

Пример #include // Создаем класс queue (очередь) class queue { int

Пример

#include
// Создаем класс queue (очередь)
class queue {
int q[100];
int

i,j;
public:
void init(void);
void qput(int m);
int qget(void);
};
Слайд 8

Объявление объектов queue int1,int2;. классы это не объекты, а шаблоны для создания объектов.

Объявление объектов

queue int1,int2;.
классы это не объекты, а шаблоны для создания объектов.

Слайд 9

Объявление объектов Можно создать объект и во время объявления класса, поместив

Объявление объектов

Можно создать объект и во время объявления класса, поместив имя

объекта после закрывающейся фигурной скобки, как это делали со структурами. То есть в C++ класс создает новый тип данных, который может использоваться для создания объектом этого типа.
Объявление класса в общем виде следующее:
class имя класса {
приватные данные и функции
public:
общие данные и функции
} список объектов;
Слайд 10

Объявление функций вне класса Когда же требуется создать реальную функцию-член класса,

Объявление функций вне класса

Когда же требуется создать реальную функцию-член класса, необходимо

указать к какому классу относится эта функция. Например, можно определить функцию init() класса queue следующим образом.
void queue::init(int i){
if (i==10) {
printf("Введите число");
scanf("%d",&i);
return;
}
printf(" Работает функция init()“);
}
Слайд 11

Вызов функций Чтобы вызвать функцию-член класса в той части программы, которая

Вызов функций

Чтобы вызвать функцию-член класса в той части программы, которая не

является частью класса, надо использовать имя объекта и оператор точка (.), как делается с элементами структур. Для вызова этой функции нужно написать:
a.init();
Следует помнить, что а и b два разных объекта. Хотя содержание функции init() в объектах одинаковое, сами функции разные.
a.init();
b.init();
Слайд 12

Вызов функций С другой стороны функция член класса может вызвать другую

Вызов функций

С другой стороны функция член класса может вызвать другую функцию

член того же класса непосредственно, не используя операцию точка (.). Операцию точка надо использовать только тогда, когда функция член класса вызывается в части программы, не принадлежащей классу.
Слайд 13

#include #include //вводим класс queue class queue{ int q[100]; int sloc,

#include
#include
//вводим класс queue
class queue{
int q[100];
int sloc, rloc;

public:
void init(void);
void qput(int i);
int qget(void);
};
void queue::init(void) //объявление функиии членов класса
{ rloc=sloc=0; }
int queue::qget(void)
{
if (sloc==rloc) {
cout<<" Очередь пуста ";
return 0;
}
rloc++;
return q[rloc];
}
void queue::qput(int i){
if (sloc==100){
cout<<"Очередь полна";
return;
}
q[++sloc]=i;
}
main(void)
{ clrscr();
queue a,b; // Созданы два бъекта класса queue
a.init(); b.init();
a.qput(10); b.qput(9); a.qput(20); b.qput(1);
cout<cout << a.qget()<< " ";
cout << b.qget()<< " ";
cout<return 0;
}

#include
#include
//вводим класс queue
class queue{
int q[100];
int sloc, rloc;
public:
void init(void);
void qput(int i);
int qget(void);
};
void queue::init(void) //объявление функиии членов класса
{ rloc=sloc=0; }
int queue::qget(void)
{
if (sloc==rloc) {
cout<<" Очередь пуста ";
return 0;
}
rloc++;
return q[rloc];
}
void queue::qput(int i){
if (sloc==100){
cout<<"Очередь полна";
return;
}
q[++sloc]=i;
}
main(void)
{ clrscr();
queue a,b; // Созданы два бъекта класса queue
a.init(); b.init();
a.qput(10); b.qput(9); a.qput(20); b.qput(1);
cout<cout << a.qget()<< " ";
cout << b.qget()<< " ";
cout<return 0;
}

Слайд 14

ООП Объектно-ориентированные языки обладают тремя важнейшими характеристиками: инкапсуляция (encapsulation), наследование (inharitance) и полиморфизм (polymorphism).

ООП

Объектно-ориентированные языки обладают тремя важнейшими характеристиками:
инкапсуляция (encapsulation),
наследование (inharitance) и
полиморфизм (polymorphism).


Слайд 15

Инкапсуляция Понятие инкапсуляции означает, что в качестве единицы целого рассматривается объединение

Инкапсуляция

Понятие инкапсуляции означает, что в качестве единицы целого рассматривается объединение некоторой

структуры данных и некоторой группы функций.
Сущность этого принципа заключается в сокрытии данных. Для этого используют спецификаторы доступа.
Слайд 16

Наследование Наследование позволяет одним объектам приобретать атрибуты и свойства других объектов. Наследование поддерживает иерархическую классификацию.

Наследование

Наследование позволяет одним объектам приобретать атрибуты и свойства других объектов. Наследование

поддерживает иерархическую классификацию.
Слайд 17

Наследование class A: [спецификатор доступа] B{ ……………… }

Наследование

class A: [спецификатор доступа] B{
………………
}

Слайд 18

Слайд 19

Полиморфизм Буквально означает многообразие форм. Он заключается в способности объекта динамически

Полиморфизм

Буквально означает многообразие форм. Он заключается в способности объекта динамически менять

свойства и особенности поведения.
Одно и то же имя может использоваться для логически связанных, но разных целей. Т.е. имя определяет класс действий, которые в зависимости от типа данных могут существенно отличаться.