Классы и объекты Класс – это разновидность абстрактного типа данных в — презентация
logo
Классы и объекты Класс – это разновидность абстрактного типа данных в
  • Классы и объекты Класс – это разновидность абстрактного типа данных в
  • Классы и объекты Класс – это разновидность абстрактного типа данных в
  • Классы и объекты Класс – это разновидность абстрактного типа данных в
  • Классы и объекты Класс – это разновидность абстрактного типа данных в
  • Классы и объекты Класс – это разновидность абстрактного типа данных в
  • Классы и объекты Класс – это разновидность абстрактного типа данных в
  • Классы и объекты Класс – это разновидность абстрактного типа данных в
  • Классы и объекты Класс – это разновидность абстрактного типа данных в
  • Классы и объекты Класс – это разновидность абстрактного типа данных в
  • Классы и объекты Класс – это разновидность абстрактного типа данных в
  • Классы и объекты Класс – это разновидность абстрактного типа данных в
  • Классы и объекты Класс – это разновидность абстрактного типа данных в
  • Классы и объекты Класс – это разновидность абстрактного типа данных в
  • Классы и объекты Класс – это разновидность абстрактного типа данных в
  • Классы и объекты Класс – это разновидность абстрактного типа данных в
  • Классы и объекты Класс – это разновидность абстрактного типа данных в
  • Классы и объекты Класс – это разновидность абстрактного типа данных в
1/17

Первый слайд презентации

Классы и объекты Класс – это разновидность абстрактного типа данных в ООП. Объект – это некоторая сущность в виртуальном пространстве, обладающая определенным состоянием и поведением, имеющая заданные значения свойств ( атрибутов ) и операций над ними ( методов ). Объекты принадлежат одному или нескольким классам, которые определяют поведение (являются моделью) объекта. Термины “ экземпляр класса ” и “ объект ” взаимозаменяемы. Объекты обладают свойствами наследования, инкапсуляции и полиморфизма. Событие – это то, что может случиться с объектом при определенных условиях (например, с кнопкой при клике на нее мышкой), событие может вызывать один или несколько методов.

Изображение слайда

Слайд 2

Весь реальный мир состоит из объектов. Практически любой материальный предмет можно представить в виде совокупности объектов, из которых он состоит. Так же и программы часто имеют дело с совокупностями данных: имя, фамилия, отчество, профессия, должность, серия и номер паспорта и т.п. Каждая отдельная составляющая не описывает человека, смысл имеет только вся вместе взятая информация. Такая простая структура, как массив, хорошо подходит для хранения отдельных значений, однако совершенно непригодна для хранения целокупности данных разных типов. Поэтому была создана такая структура, как класс, умеющая объединять несколько разнотипных переменных в одном объекте.

Изображение слайда

Слайд 3

Например, класс, описывающий объект, который содержит имя, фамилию человека и номер его кредитки, может быть создан следующим образом: // Класс PersonalData class PersonalData { public: char firstname [128]; char lastname [128]; int card; }; // pd - экземпляр класса PersonalData : PersonalData pd; После открывающей скобки идет модификатор доступа public – все функции и переменные, которые находятся после него, становятся доступными из всех частей программы. После ключевого слова public идет описание полей класса. Класс PersonalData содержит поля имени, фамилии и номера кредитки. Затем объявлена переменная pd, которая имеет тип PersonalData. Таким образом, pd представляет собой запись, описывающую отдельного человека. pd – это экземпляр класса PersonalData. Мы создали этот объект, реализовав класс PersonalData. Поля firstname, lastname и card – это члены класса или свойства класса. Объявление класса начинается с ключевого слова class, после которого идет имя класса и пара фигурных скобок, открывающих и закрывающих тело класса.

Изображение слайда

Слайд 4

Обратиться к членам созданного класса можно так: PersonalData pd; pd.card = 123; cin >> pd.firstname ; cin >> pd.lastname ; Здесь pd – экземпляр класса PersonalData ( т.е. отдельный объект типа PersonalData ); целочисленная переменная pd.card – свойство объекта pd. В этом фрагменте программы происходит объявление объекта pd, который затем может быть использован для описания покупателя. Программа присваивает номер кредитки, а затем считывает имя и фамилию из стандартного ввода. Для хранения имени используется массив символов вместо типа string. Теперь программа может работать с объектом типа pd как с единым целым, не обращаясь к его отдельным частям, пока в этом не возникнет необходимость:

Изображение слайда

Слайд 5

Изображение слайда

Слайд 6

Итак, классы используются для объединения взаимосвязанных данных в один объект. Приведенный ниже класс Savings ( англ. – сбережения) объединяет в себе баланс и уникальный номер счета: class Savings { public: unsigned accountNumber; float balance; }; Каждый экземпляр класса Savings содержит одинаковые элементы: int main () { Savings a; Savings b; a.accountNumber = 1; // это один счет b.accountNumber = 2; // а это другой счет } Переменная a.accountNumber отличается от переменной b.accountNumber так же, как баланс банковского счета Иванова отличается от баланса банковского счета Петрова, хотя они оба называются балансами.

Изображение слайда

Слайд 7

Изображение слайда

Слайд 8

Чтобы обеспечить ввод / вывод данных для нескольких объектов и избежать при этом дублирования кода, лучше создать отдельные функции для ввода и вывода данных.

Изображение слайда

Слайд 9

Задача 1. Описать класс FamilyMember. Свойства: имя, роль, возраст. Создать 3 объекта и 1 внешнюю функцию, которая принимает данные по возрасту и считает среднее арифметическое. В функции main() вывести на экран средний возраст.

Изображение слайда

Слайд 10

Статический массив объектов Результат работы программы:

Изображение слайда

Слайд 11

Изображение слайда

Слайд 12

_stricmp – сравнивает две строки без учета регистра символов, возвращает 0, если строки равны. Описание программы:

Изображение слайда

Слайд 13

В функции main() создается массив из 25 объектов класса Dannye, после чего программа приглашает пользователя ввести информацию. Затем в теле цикла while происходит вызов функции getData (), которая ожидает ввода с клавиатуры содержимого элементов массива. Цикл прерывается, если getData () возвращает false или если количество заполненных объектов достигло максимального значения (25). После этого созданные объекты передаются функции displayData(), которая выводит их на экран. Функция getData () принимает аргумент типа Dannye, которому внутри функции присваивается имя d. (Символ & здесь – это указатель на объект). Внутри функции getData () происходит считывание строки из устройства стандартного ввода с последующей его записью в член (свойство) firstname. Если _stricmp() находит, что введенная строка – “ exit ”, функция getData () возвращает false функции main(), сигнализируя, что пора выходить из цикла ввода информации. (Функция _stricmp() сравнивает строки, не обращая внимания на регистр. Строки “exit”, “EXIT”, “Exit” и т.д. считаются идентичными). Если введена строка, отличная от “exit”, функция считывает из стандартного ввода фамилию и номер кредитки и записывает их в объект d.

Изображение слайда

Слайд 14

Динамический массив объектов

Изображение слайда

Слайд 15

Классы лучше описывать в отдельном заголовочном файле. Создать проект, сохранить. Затем Проект -> добавить класс, изменить Имя класса. Затем подключить заголовочный файл, например:

Изображение слайда

Слайд 16

Изображение слайда

Последний слайд презентации: Классы и объекты Класс – это разновидность абстрактного типа данных в

Задача 2. В заголовочном файле описать класс Planet : название, диаметр, биологический вид. Создать массив из 8-9 объектов. С помощью 2 внешних функций получить и вывести данные. Предусмотреть возможность ввода / вывода данных для меньшего числа объектов ( _ stricmp ). displayData () выводит данные. Определяется и выводится максимальный диаметр.

Изображение слайда

Похожие презентации

Ничего не найдено