Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lect5

.pdf
Скачиваний:
9
Добавлен:
27.03.2015
Размер:
487.39 Кб
Скачать

Пример класса - класс Human

Attributes – свойства, operations – описания методов, private – свойства доступны внутри класса, public – методы доступны извне, описывают интерфейс для объектов этого класса

31

Кафедра АППМ, НГТУ

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

Инкапсуляция (encapsulation) — это сокрытие

реализации класса и отделение его внутреннего

представления от внешнего (интерфейса).

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

свойствам какого-либо класса из методов других

классов. Для доступа к свойствам класса принято задействовать специальные методы этого класса

для получения и изменения его свойств (getters и setters).

Внутри объекта данные и методы могут обладать

различной степенью открытости (или доступности).

А.В.Гаврилов

32

Кафедра АППМ, НГТУ

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

Открытые члены класса составляют внешний интерфейс объекта. Это то, что доступно другим

классам.

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

логику отдельного класса, не меняя код остальных

компонентов системы. Это свойство называется

модульность.

Преимущества доступа через методы:

контроль корректных значений полей;

лёгкость изменения способа хранения данных;

– простота отладки. А.В.Гаврилов

33

Кафедра АППМ, НГТУ

 

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

Наследование (inheritance) — это отношение между

классами, при котором класс использует структуру

или поведение другого класса (одиночное наследование), или других (множественное

наследование) классов.

Наследование вводит иерархию «общее/частное», в

которой подкласс наследует от одного или нескольких более общих суперклассов.

Подклассы обычно дополняют или переопределяют

унаследованную структуру и поведение.

А.В.Гаврилов

34

Кафедра АППМ, НГТУ

Полиморфизм

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

Слово «полиморфизм» греческого происхождения и означает «имеющий много форм».

Функция с одним и тем же названием

А.В.Гаврилов

35

Кафедра АППМ, НГТУ

Полиморфизм

Полиморфизм (polymorphism) — положение теории

типов, согласно которому имена (например,

переменных) могут обозначать объекты разных (но имеющих общего родителя) классов. Следовательно,

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

операций.

Перегрузка методов — возможность создания

нескольких методов с одним и тем же именем, но

разным количеством или различными типами

передаваемых параметров.

А.В.Гаврилов

36

Кафедра АППМ, НГТУ

Программирование в ООП заключается в создании иерархии классов и написании методов для этих классов

В языке С++ программный модуль состоит из двух файлов: с расширениями .h и .cpp

В файле name.h описаны классы (их структура), а в name.cpp – методы классов (в виде функций или подпрограмм)

А.В.Гаврилов

37

Кафедра АППМ, НГТУ

Пример простого консольного приложения на С++

Приложение вводит команду: символ 1, 2, 3 или q

Выполняет ее обращаясь к соответствующему методу класса Sort

А.В.Гаврилов

38

Кафедра АППМ, НГТУ

А.В.Гаврилов Кафедра АППМ, НГТУ

#include <stdio.h> #include <conio.h> #include <string.h> #include <windows.h> #include "Unit2.h" Sort s;

void main()

{

SetConsoleTitle("Bubble sorting by Lysenkov Victor");

char c = '1'; while (c != 'q')

{

clrscr();

printf("Operations:\n\n"); printf("1. Int numbers sorting\n");

printf("2. Float numbers sorting\n"); printf("3. Strings sorting\n"); printf("q. Quit\n\n");

printf(">> "); c = getch(); switch(c)

{

case '1': s.IntSort(); break;

case '2': s.FloatSort(); break;

case '3': s.StringSort(); break;

case 'q': break;

default:

printf("\nWrong choise!"); getch();

break;

}

}

}

39

Класс Sort

class Sort

{

public:

Sort(); // конструктор

void IntSort(); // сортировка целых чисел void FloatSort();

void StringSort(); ~Sort(); // деструктор

};

А.В.Гаврилов

40

Кафедра АППМ, НГТУ

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]