Разделы презентаций


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

Содержание

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ. Программирование — не такое уж приятное занятие, как может показаться на первый взгляд. Регулярно программисты сталкиваются с двумя сильно действующими на нервы событиями: они то часами мучаются в

Слайды и текст этой презентации

Слайд 1Объектно-ориентированное программирование.
«Эйнштейн утверждал, что должны существовать простые объяснения природных

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

произволу.
У программиста нет такого утешения сложность, с которой он должен справиться, лежит в самой природе системы»
Гарди Буч.
Объектно-ориентированное  программирование. «Эйнштейн утверждал, что должны существовать простые объяснения природных процессов, так как Бог не действует

Слайд 2ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ.
Программирование — не такое уж приятное занятие, как может

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

действующими на нервы событиями:
они то часами мучаются в раздумьях, как запрограммировать то или иное функциональное решение,
то их одолевает ужасная скука при многократной реализации давно отработанных решений.
ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ  ПРОГРАММИРОВАНИЕ. Программирование — не такое уж приятное занятие, как может показаться на первый взгляд. Регулярно

Слайд 3Способ борьбы с этими неприятностями называется
«объектно-ориентированное программирование»
(ООП).

Способ борьбы с этими неприятностями называется «объектно-ориентированное программирование» (ООП).

Слайд 4Идея объектно-ориентированного программирования
возникло в результате естественной эволюции более ранних нововведений

в разработке языков программирования

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

позволяет создавать

модульные программы с представлением данных на определенном уровне абстракции

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

Идея объектно-ориентированного программированиявозникло в результате естественной эволюции более ранних нововведений в разработке языков программированияболее структурированный, чем другие

Слайд 5Основные свойства объектов
Объектно-ориентированный язык программирования характеризуется тремя основными свойствами:
Инкапсуляция

объединение записей

с процедурами и функциями, работающими с полями этих записей, которое

формирует новый тип данных — объект.

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


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

Полиморфизм


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

Основные свойства объектовОбъектно-ориентированный язык программирования характеризуется тремя основными свойствами:Инкапсуляцияобъединение записей с процедурами и функциями, работающими с полями

Слайд 6Начиная с версии 5.5, Турбо-Паскаль предоставляет программисту все средства объектно-ориентированного

программирования которые встроены непосредственно в язык.
высокую степень cтруктурированности,
модульность,
абстрактность,
возможность

повторного использования (наследования)
Начиная с версии 5.5, Турбо-Паскаль предоставляет программисту все средства объектно-ориентированного программирования которые встроены непосредственно в язык.высокую степень

Слайд 7ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ.
Программы, написанные с использованием ООП, являются более гибкими и

более открытыми для внесения изменений.
Неудобство ООП заключается в необходимости

отказа от некоторых догматических представлений о программировании
Но если это сделать, объектно-ориентированное программирование станет простым, наглядным и превосходным средством разрешения многих проблем, которые являются камнем преткновения при традиционных подходах к программированию.
ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ  ПРОГРАММИРОВАНИЕ. Программы, написанные с использованием ООП, являются более гибкими и более открытыми для внесения изменений.

Слайд 8Что такое
объекты?

Что такое объекты?

Слайд 9ВЕСЬ ОКРУЖАЮЩИЙ НАС МИР СОСТОИТ ИЗ ОБЪЕКТОВ
Это предметы живой и

неживой природы, которые представляются как единое целое, а отдельные части

объектов образуют сложное взаимодействие друг с другом.
При структурном подходе программист обычно разделяет (структурирует) описываемый объект на составные части стараясь описать свойства отдельных частей, не вдаваясь в подробности взаимодействия между ними, что, вообще говоря, не является лучшим способом программирования.
ВЕСЬ ОКРУЖАЮЩИЙ НАС МИР СОСТОИТ ИЗ ОБЪЕКТОВ Это предметы живой и неживой природы, которые представляются как единое

Слайд 10ОБЪЕКТЫ ЯВЛЯЮТСЯ ВЫСШИМ УРОВНЕМ АБСТРАКЦИИ ДАННЫХ
Объект можно разделить на части,

но тогда он перестанет быть объектом.
Отношения частей к целому

и взаимоотношения между частями становятся понятнее тогда, когда все содержится вместе как единое целое.
Это называется инкапсуляцией и является очень важным понятием.
ОБЪЕКТЫ ЯВЛЯЮТСЯ ВЫСШИМ УРОВНЕМ АБСТРАКЦИИ ДАННЫХ Объект можно разделить на части, но тогда он перестанет быть объектом.

Слайд 11ОБЪЕКТЫ МОГУТ НАСЛЕДОВАТЬ ХАРАКТЕРИСТИКИ И ПОВЕДЕНИЕ ДРУГИХ ОБЪЕКТОВ
Объекты, характеристики и

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

Здесь происходит качественный скачок — наследование, которое, возможно, является сегодня единственным самым крупным различием между обычным программированием на Паскале и объектно-ориентированным программированием в Турбо Паскале.
ОБЪЕКТЫ МОГУТ НАСЛЕДОВАТЬ ХАРАКТЕРИСТИКИ И ПОВЕДЕНИЕ ДРУГИХ ОБЪЕКТОВОбъекты, характеристики и поведение которых наследуются, называются порождающими или родительскими

Слайд 12Иерархия
объектов

Иерархия объектов

Слайд 13ИЕРАРХИЯ ОБЪЕКТОВ
Чем этот объект похож на другие объекты из общего

класса?
Чем он отличается от других объектов?

ИЕРАРХИЯ ОБЪЕКТОВЧем этот объект похож на другие объекты из общего класса?Чем он отличается от других объектов?

Слайд 14Иерархия объектов
Каждый конкретный класс имеет свои особенности поведения и характеристик,

определяющих этот класс.
Например, класс геометрических фигур можно представить как два

подкласса:
плоские фигуры
объемные фигуры.

Плоские фигуры могут иметь вершины и не иметь их.
Не имеющие вершин плоские фигуры представляются окружностями и эллипсами.

Иерархия объектовКаждый конкретный класс имеет свои особенности поведения и характеристик, определяющих этот класс.Например, класс геометрических фигур можно

Слайд 15Задавая себе приведенные выше вопросы, программист продвигается от вершины иерархического

дерева данного класса и проходит по дочерним подклассам.

Задавая себе приведенные выше вопросы, программист продвигается от вершины иерархического дерева данного класса и проходит по дочерним

Слайд 16ИЕРАРХИЯ ОБЪЕКТОВ
Наивысший уровень — самый общий, а вопросы самые простые.
Например:

фигуры плоские или объемные?
Каждый последующий уровень более специфический, чем предыдущий,

и менее общий.

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

Цвет, стиль заполнения, величину радиуса окружности и т.д.

ИЕРАРХИЯ ОБЪЕКТОВНаивысший уровень — самый общий, а вопросы самые простые.Например: фигуры плоские или объемные?Каждый последующий уровень более

Слайд 17Иерархия геометрических фигур

Иерархия геометрических фигур

Слайд 18При использовании ООП следует помнить утверждение:
если характеристика однажды определена, то

все категории, расположенные ниже данного определения, содержат эту характеристику.
Поэтому, если

определена окружность, то нет необходимости узнавать, сколько у нее вершин, т.к. она относится к подклассу фигур, не имеющих вершин.
При использовании ООП следует помнить утверждение:если характеристика однажды определена, то все категории, расположенные ниже данного определения, содержат

Слайд 19Объектно-ориентированное программирование является наилучшим инструментарием построения иерархических деревьев для структур

данных.

Объектно-ориентированное программирование является наилучшим инструментарием построения иерархических деревьев для структур данных.

Слайд 20Наследование

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

Слайд 21НАСЛЕДОВАНИЕ
В терминах Паскаля объект наиболее схож с типом RECORD, который

является оболочкой для объединения нескольких связанных элементов под одним именем.
Важной

особенностью объектно-ориентированной методологии является механизм, с помощью которого сложные типы данных могут наследовать характеристики более простых, т.е. более общих типов.
НАСЛЕДОВАНИЕВ терминах Паскаля объект наиболее схож с типом RECORD, который является оболочкой для объединения нескольких связанных элементов

Слайд 22Наследование
Каждое значение присвоенное переменной TPerson, является экземпляром типа RECORD.
Запись можно

организовать следующим образом:
TPerson = RECORD
Name : STRING[30];

Date : STRING[10];
Rate : REAL;
END;

где переменная TPerson определена как запись.

Предположим, Вы хотите написать программу, которая подсчитывает размер стипендий и заработной платы в нашем университете.

НаследованиеКаждое значение присвоенное переменной TPerson, является экземпляром типа RECORD.Запись можно организовать следующим образом:TPerson = RECORD  Name

Слайд 23TPerson представляет два уровня абстракции.
Можно рассматривать поля
Name, Date

и Rate по отдельности
Когда речь идет о полях, работающих одновременно

для описания конкретного человека, можно рассматривать их совокупность как TPerson
TPerson представляет два уровня абстракции. Можно рассматривать поля Name, Date и Rate по отдельностиКогда речь идет о

Слайд 24Наследование
Предположим, что Ваша программа должна учитывать выплату денег студентам, преподавателям

и сотрудникам кафедры.
В каждой группе выплаты производятся особым способом.
Можно

создать другой тип записи для каждой группы.

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

Можно построить запись TStudent вида:

TStudent = RECORD
Name : STRING[30];
Date : STRING[10];
Rate : REAL;
Ball : REAL;
END;

НаследованиеПредположим, что Ваша программа должна учитывать выплату денег студентам, преподавателям и сотрудникам кафедры. В каждой группе выплаты

Слайд 25Наследование
Однако, проявив немного сообразительности, можно сохранить тип TPerson путем создания

поля типа TPerson внутри типа TStudent
TStudent = RECORD
Student :

Tperson;
Ball : REAL;
END;

Такая конструкция удобна и проста, поэтому постоянно используется в программировании.

Но она не учитывает специфику данных, обрабатываемых в программе.

НаследованиеОднако, проявив немного сообразительности, можно сохранить тип TPerson путем создания поля типа TPerson внутри типа TStudentTStudent =

Слайд 26имя,
фамилию,
год рождения
ему полагается определенная сумма денег.
Наследование
Необходимо установить,

чем выплата денег студентам отличается от выплаты другим лицам, а

в чем их сходство.

Студент, как и преподаватель или другой служащий кафедры, имеет:

Обратите внимание на то, что все указанные в примере группы объединены по некоторым основным признакам, характеризующим объект.

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

Слайд 27Наследование
Для студента тип TStudent должен содержать все поля, которые даются

в записи TPerson, при этом тип TStudent является типом-потомком для

типа TPerson.

TStudent наследует все, что принадлежат TPerson, и, кроме того, имеет новые поля, которые делают TStudent уникальным.

Процесс, с помощью которого один тип наследует характеристики другого типа, называется наследованием.

Наследующий тип называется порожденным типом или потомком, а тип, который наследуется, называется родительским типом или предком.

НаследованиеДля студента тип TStudent должен содержать все поля, которые даются в записи TPerson, при этом тип TStudent

Слайд 28Наследование
Одним из элементов языка Турбо-Паскаль является новая категория структуры данных,

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

новой категории определяются с помощью нового зарезервированного слова OBJECT.

Объектный тип может быть определен как полный, самостоятельный тип, подобно описанию записей в Паскале, но он может определяться и как потомок существующего типа объекта путем помещения имени родительского типа в скобки после зарезервированного слова OBJECT.

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

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

следующим образом:
ТУРЕ
TPerson = OBJECT
Name : STRING[30] ;
Date : STRING[10];
Rate :

REAL;
END;
 
TStudent = OBJECT(TPerson)
Ball : REAL;
END;

Здесь TPerson является родительским типом, a TStudent — дочерним.

Фактически, этот процесс может продолжаться сколь угодно долго. К дочернему типу TStudent при необходимости можно определить еще один дочерний тип.

Чаще всего создание объектно-ориентированных прикладных программ состоит в построении такой иерархии объектов.

НаследованиеВ нашем примере два связанных типа объектов могли бы определяться следующим образом:ТУРЕ	TPerson = OBJECT	 Name		: STRING[30] ;

Слайд 30Наследование
Все типы, наследующие тип TPerson, называются его дочерними типами,
но

TStudent является непосредственным дочерним типом от TPerson,
a TPerson является

непосредственным родителем типа TStudent.

Тип объекта (так же как и подкаталог DOS) может иметь любое число непосредственных дочерних типов и только одного непосредственного родителя.

НаследованиеВсе типы, наследующие тип TPerson, называются его дочерними типами, но TStudent является непосредственным дочерним типом от TPerson,

Слайд 31Экземпляры типа OBJECT.

Экземпляры типа OBJECT.

Слайд 32Экземпляры типа OBJECT.
Экземпляры типа OBJECT описываются так же, как в

Паскале описывается любая статическая или динамическая переменная, ссылающаяся на размещенную

в динамической памяти переменную:

ТУРЕ
PStudent = ^TStudent;
VAR
Stat_St : TStudent;
Din_St : PStudent;

Перед использованием переменной Din_St необходимо выделить память для нее с помощью функции New

Экземпляры типа OBJECT.Экземпляры типа OBJECT описываются так же, как в Паскале описывается любая статическая или динамическая переменная,

Слайд 33Поля объектов

Поля объектов

Слайд 34с помощью оператора WITH,
используя префикс с именем объекта
Поля объектов
Например:
Student.Ball:=

4.5;
WITH Student DO
BEGIN
Name:='Иванов Николай Петрович';
Date:='25-06-1995';
END;
К полю объекта можно

обратиться как к полю обычной записи :

Даже если поля Name, Date и Rate не являются частью описания типа TStudent (они наследуются от типа TPerson), на них можно ссылаться как на описанные в TStudent:

Student.Name := 'Николай Иванов';

с помощью оператора WITH, используя префикс с именем объектаПоля объектовНапример:Student.Ball:= 4.5;WITH Student DO 	BEGIN		Name:='Иванов Николай Петрович';		Date:='25-06-1995'; 	END;К

Слайд 35К полям объекта можно обратиться непосредственно, но лучше этого избегать.
Принципы

объектно-ориентированного программирования требуют, чтобы поля объектов были исключены из исходного

кода, насколько это возможно.

В дальнейшем будет показано, что поля метода можно объявить скрытыми, ограничив возможность доступа к ним пределами модуля, в котором они определены.

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

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика