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

Автор работы: Пользователь скрыл имя, 12 Марта 2014 в 04:50, лекция

Краткое описание

Цель полиморфизма - использование одного имени для задания общих для класса действий. Для изменения метода необходимо перекрыть его в потомке, т.е. объявить в потомке одноименный метод и реализовать в нем нужные действия. В результате объекте-родителе и объекте-потомке будут действовать два одноименных метода, имеющие разную алгоритмическую основу. Концепция полиморфизма - идея «один интерфейс - множество методов». Полиморфизм позволяет манипулировать объектами различной степени сложности путем создания общего для них стандартного интерфейса для реализации похожих действий.
Пример 1. Объявление класса в программе. Постановка задачи
Пример 1. Объявление класса в программе. Программная реализация

Вложенные файлы: 1 файл

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

— 398.50 Кб (Скачать файл)

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

 

1

 

Если бы  строители сооружали здания также,

как программисты  пишут свои программы,

первый же  дятел разрушил бы человеческую  цивилизацию.

 

Цитата недели

вопрос 1

 

1. Что такое  класс?

    • Это модуль, сохраненный в файле
    • Это функция
    • Это библиотека
    • Это тип данных
    • Это специальная программа

 

 

2

вопрос 2

 

   2. Что такое методы класса?

 

    • Это инкапсулированные в классе данные
    • Это функции для работы с полями класса
    • Это специальные функции в составе ОС Windows

 

 

3

вопрос 3

 

   2. Что такое полиморфизм?

 

    • Это переключатель
    • Это спец.функция для работы с полями класса
    • Это одно имя – разный функционал

 

 

4

Абстрактные и реальные объекты

 

  • Абстрактный объект это описание реального объекта минус подробности
  • Пример 1:
  • Абстрактные человек-это описание человека, которое содержит атрибуты и варианты поведения:
        • Имя
        • Фамилия
        • Рост
        • Вес
  • Реальный человек определяет значения атрибутов:
        • Майкл
        • Джексон
        • 180 см
        • 80 кг

 

5

 

Пример 2: формочки для печенья

Почему объекты?

 

  • Фокусирование на объектах упрощает для нас понимание сложных вещей.
  • Уделяем внимание лишь важным аспектам
  • Пример : преподаватель - студент

 

6

Концепция

 

Класс и Объект

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

 

 

 

7

Концепция

 

  • Объект является представителем (экземпляром) какого-либо класса.
  • Объект обладает
    • состоянием
    • поведением
    • идентичностью.
  • Состояние объекта характеризуется
    • набором его свойств (атрибутов)
    • текущими значениями каждого из этих свойств.
  • Поведение объекта - выполнения определенной последовательности характерных для него действий.
  • Идентичность объекта – это свойство (или набор свойств) объекта, которое позволяет отличить его от всех прочих объектов того же типа (класса).

 

8

Класс 
простое объяснение

 

  • Класс – это шаблон который определяет атрибуты и методы реального мира.
  • Пример: форма для печенья в виде буквы «А» - это не буква А, она лишь определяет , как буква А выглядит.
  • Если вам необходим объект, представляемый классом, создаете экземпляр.
  • Каждый экземпляр содержит те же самые атрибуты и методы, которые определены в классе. У каждого экземпляра своя копия.
  • Метод – поведение объекта. (опять про печенье, но в форме собаки)

 

9

Этапы разработки программ с использованием ООП

 

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

ООП предполагает этапы разработки программ:

 

  • Первый этап: абстрагирование
  • Второй этап: инкапсуляция
  • Третий этап: модульность
  • Четвертый этап: иерархия

 

10

Этапы разработки программ с использованием ООП

 

Абстрагирование

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

 

Различие:

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

 

ООП нацелено на моделирование предметной области решаемой задачи.

 

11

Этапы разработки программ с использованием ООП

 

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

  • Типизация объектов и синтез абстрактных типов данных. Определение новых типов данных и наборов специфических функций и операций, применяемых к этим типам данных.

Модульность

  • Объектная декомпозиция. Выделение подтипов (подобъектов) для каждого из типов и их составляющих.

Иерархия

  • Композиционная иерархизация объектов. Т.е. выделение родовитых и композиционных отношений над объектами.

 

12

Парадигмы ООП:

 

        • инкапсуляция
        • наследование
        • полиморфизм

 

13

Инкапсуляция (encapsulation)

 

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

 

  • Функции, включенные в класс, называют методами класса
  • Данные – элементами или полями класса,
  • Конкретные представители класса – объекты, экземпляры. 

 

Класс (объект) - это то, что поддерживает инкапсуляцию

 

  • Инкапсуляция позволяет сделать класс «самодостаточным» для решения конкретной задачи.
  • Класс всегда несет в себе некоторую функциональность.
  • Это мощное средство обмена готовыми к работе программными заготовками

 

14

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

 

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

 

15

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

 

16

 

ID

F_Name

L_Name

Graduation

 

Write()

Display()

 

Student

 

A_Major

A_School

YearGraduated

 

Write()

Display()

 

Aspirant

Управление доступом

 

 

 

 

Ключи доступа  

  • private - элементы данных могут использоваться только                      функциями-методами класса, к которому       принадлежат эти элементы данных 
  • public - элементы данных могут использоваться                       любыми функциями программы 
  • protected  - элементы данных могут использоваться        функциями-методами того же класса, к которому       принадлежат эти элементы данных, а также         функциями- методами производных классов                        (классов-потомков) 

По умолчанию ключ доступа private. Т.е. если ключи доступа не указаны, то все элементы класса являются скрытыми (недоступными).

Попытка обратиться в программе к скрытым данным или методам вызывает сообщение:

<имя элемента класса>   is not accessible

 

17

Наследование (inheritance)

 

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

 

  • Такой механизм получения новых классов называется порождением.
  • При этом новый, порожденный, класс (потомок) наследует все поля, методы и свойства своего базового, родительского класса.
  • Наследование поддерживает концепцию иерархии классов (hierarchical classification).
  • Применение иерархии классов делает управляемыми большие потоки информации.
  • Наследование обеспечивает поэтапное создание сложных классов и разработку собственных библиотек классов

 

18

Полиморфизм (polymorphism)

 

19

Полиморфизм (polymorphism)

 

  • Это возможность заменить в классе потомке метод класса родителя, сохранив при этом имя метода.
  • Это свойство классов решать схожие по смыслу проблемы разными способами.

Цель полиморфизма - использование одного имени для задания общих для класса действий.

 

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

 

20

Описание класса в Delphi

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