kopilkaurokov.ru - сайт для учителей

Создайте Ваш сайт учителя Курсы ПК и ППК Видеоуроки Олимпиады Вебинары для учителей

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

Нажмите, чтобы узнать подробности

                                                   ВВЕДЕНИЕ

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

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

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

Объектно-ориентированный подход к проектированию программных продуктов основан на:

  • выделении классов объектов;
  • установлении характерных свойств объектов и методов их обработки;
  • создании иерархии классов, наследовании свойств объектов и методов их обработки.

Просмотр содержимого документа
«Объектно-ориентированное программирование. Инкапсуляция. Классы и методы. Иерархия классов.»

Исследовательская работа по информатике


Тема: Объектно-ориентированное программирование: Инкапсуляция. Классы и методы. Иерархия классов.




















Учитель: Хорошевская Е.В., Леснопристанская средняя школа 2019г.


ВВЕДЕНИЕ

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

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

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

Объектно-ориентированный подход к проектированию программных продуктов основан на:

  • выделении классов объектов;

  • установлении характерных свойств объектов и методов их обработки;

  • создании иерархии классов, наследовании свойств объектов и методов их обработки.







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

Объектно-ориентированный подход использует следующие базовые понятия:

1) объект;

2) свойство объекта;

3)метод обработки;

4)событие;

5)класс объектов.

Объект-это совокупность свойств (параметров) определенных сущностей и методов их обработки(программных средств).

Метод-программа действия над объектом или его свойством.

Событие- изменение состояния объекта.

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

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
















Рисунок 1- Иерархия классов






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

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

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

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

Метод определяет реакцию объекта на данное сообщение, т.е. его поведение. Он состоит из операций над своими переменными экземпляра и из посылок сообщений другим объектам. В конечном счете объект возвращает ответ на посланное ему сообщение. Поскольку все объекты одного класса обладают одинаковым набором методов, последние хранятся в одном месте – в самом классе.

У каждого класса существует два типа методов:

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

* методы экземпляра (сообщения к экземплярам данного класса).

Например класс «Величина». Экземплярами этого класса являются объекты, которые можно измерять, сравнивать, упорядочивать и вычислять. К этому классу, в частности, относятся символы, числа, дата и время. Эта группа классов имеет следующую иерархию.

Символ. Экземпляры класса «символ» являются расширенным множеством символов во внутреннем коде со значениями от 0 до 255.

Дата. Экземпляры класса «дата» представляют собой даты. 14/05/2009

Время. Экземпляры класса «время» представляют собой время, такое как 12:15.

Число. Система поддерживает три вида числа:

  • целое;

  • вещественное с плавающей точкой (если есть сопроцессор);

  • дробь – рациональное число.

Имеется 6 типов переменных:

Экземплярные переменные, существуют в течении всего жизненного цикла объекта, в заголовке которого они написаны;

Временные переменные, описываются только внутри метода и существуют только во время выполнения данного метода;

Переменные класса, декларируются в описании класса, доступны всем экземплярам данного класса;

Глобальные переменные, доступны всем переменным всех классов;

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

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

Экземпляры объектов можно сравнивать друг с другом. Класс «объект» содержит методы сравнения. Все классы, являющиеся подклассами этого класса, наследуют эти методы. Помимо этого каждый класс может определить для себя другие методы сравнения. Например, классы из группы «величина» имеют еще несколько методов: , =,

Результат сравнения объектов – экземпляр класса «Логический». Этот класс имеет два подкласса: Истина и Ложь. Экземплярами этих классов являются псевдопеременные истина и ложь соответственно. Задание новых экземпляров этих классов приводит к ошибке.

Создание новых объектов происходит по принципам наследования и полиморфизма.

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

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

Класс «Объект» не имеет суперкласса и является корнем дерева иерархии классов.

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

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

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

Класс класса называется метаклассом. Классам присваиваются имена, а метаклассам – нет. Для каждого класса существует один метакласс.














Рисунок 2- Классы и метаклассы.


В ряде случаев необходимо работать с объектами, обладающими свойствами пересечения некоторых классов, но не включения:

Класс А не является подклассом класса В

Класс В не является подклассом класса А

Пересечение А и В не пусто.

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

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

  • инкапсуляция (замыкание свойств) данных и программ в объекте;

  • наследование;

  • полиморфизм.

Инкапсуляция означает сочетание структур данных с методами их обработки в абстрактных типах данных- классах объектов.

Инкапсуляция. Основой решения задачи является задание положения отдельной точки на экране, описываемого координатами Х и У. для задания координат подходит тип «запись»:


Pozition = record (object)

X, Y: integer;

End;


Затем потребуется введение фактических значений координат. Для этого вводим две функции:


Prozedure Init(CoordX, Cory: integer);

Begin

X: CoordX;

Y: CoordY;

End;


Введение объектов позволяет зафиксировать это положение, объявив и поля, и действия над ними в единой конструкции:


Pozition = Оbject

X, Y: integer;

Prozedure Init(CoordX, Cory: integer);

Function GetX : integer;

Function GetY : integer;

End;


Процедура Init и функции GetX и GetУ являются методами объекта Pozition. Для инициализации экземпляра типа Pozition достаточно вызвать его метод, как если бы он был полем записи. Метод задается так же как и процедура в модуле: внутри объекта записывается заголовок, при этом все поля, используемые методом, должны предшествовать его объявлению. Определение метода (расшифровка действий) происходит вне объявления объекта. Имя метода должно предваряться названием типа объекта, которому метод принадлежит, сопровождаемый точкой.

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

Также как модуль скрывает детали реализации процедур от пользователя, объект может скрывать сои поля и методы. Для этого используется ключевое слово private (личный). Личные поля и методы доступны только внутри метода. Объявление выглядит следующим образом:

Tyre

Оbject Name = Оbject

Поле;

Поле;

Метод;

Метод;

Private

Поле;

Поле;

Метод;

Метод;

End.

Заключение.


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

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
















Список литературы:



  1. Зелковец М. и др. Принципы разработки программного обеспечения Мир, 1982

  2. Кнут Д. Искусство программирования для ЭВМ. Том 1: Основные алгоритмы. – М., СПБ, Киев,2000

  3. Кнут Д. Искусство программирования для ЭВМ. Том 3: Сортировка и поиск. – М., СПБ, Киев,2000

  4. Подбельский В.В. Язык Си++/ В.В. Подбельский. - М.: Финансы и статистика, 1990. — 560 с.

  5. Страуструп Б. Язык программирования Си / Б. Страуструп - М.: Радио и связь, 1991. — 352 с.

  6. Язык Си. Практикум для начинающих.- Усть-Каменогорск, ВКГУ, 1997. — 34 с.

  7. Коутс Р., Влейминк И., Интерфейс «Человек – компьютер », Мир,1990.

  8. Поляков Д.Б.,Круглов И.Ю. Программирование в среде Турбо- Паскаль.(версия 5.5),1992

  9. Йордан Э. Структурное программирование и проектирование программ.1979

  10. Могилев А.В., Пак Н.И., Хеннер Е.К. Информатика: учеб.пособие для студентов пед.вузов. – М.,1999.-816 с.

  11. Э.З.Любимский. Программирование. Учеб.пособие для вузов./Любимский Э.З., Мартынюк В.В., Трифонов Н.П. – М.:Наука, 1980.-603 с.

  12. Меженный О.А. Турбо Паскаль. Учитесь программировать./ компьютерное издательство «Диалектика» 2001 год.












СОДЕРЖАНИЕ


ВВЕДЕНИЕ

  1. Иерархия классов:

1.1 классы;

1.2 метаклассы;

1.3 суперклассы;

1.4 подклассы.

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

ЗАКЛЮЧЕНИЕ


15



Получите в подарок сайт учителя

Предмет: Информатика

Категория: Прочее

Целевая аудитория: Прочее

Автор: Хорошевская Елена Валентиновна

Дата: 22.12.2019

Номер свидетельства: 533073

Получите в подарок сайт учителя

Видеоуроки для учителей

Курсы для учителей

ПОЛУЧИТЕ СВИДЕТЕЛЬСТВО МГНОВЕННО

Добавить свою работу

* Свидетельство о публикации выдается БЕСПЛАТНО, СРАЗУ же после добавления Вами Вашей работы на сайт

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

Ваш личный кабинет
Проверка свидетельства