- •Учебно-методическое пособие Модуль 1 «Философия ооп»
- •Введение в объектно-ориентированное проектирование и программирование
- •Введение
- •Парадигмы программирования
- •Еще немного об объектно – ориентированном подходе
- •Сокрытие информации и ответственность за поведение – первый принцип ооп
- •Иерархия объектов с наследованием свойств и поведения – второй принцип ооп
- •Наследуемое поведение объекта может быть изменено – третий принцип ооп
- •Концепция объекта в ооп
- •Программирование как моделирование реальности
- •Понятие объекта
- •Объектная нотацияUml
- •Проверь себя
Объектная нотацияUml
В языке UML объект обозначается прямоугольником с двумя отделениями. Верхнее отделение содержит имя объекта и имя класса, которому принадлежит объект. Синтаксис этой конструкции выглядит так:
objectname: classname
Нижнее отделение содержит список имен атрибутов и значений. С помощью этого синтаксиса можно также показать типы атрибутов:
attributename: type = value
На рисунке 1 показан объект Course (Дисциплина) с именем cl. Объект обладает двумя атрибутами. Типы атрибутов не показаны – они заданы в определении класса.
c1: Course |
courseNumber = COMP227 courseName = OOP |
Рисунок 1 – Объект - экземпляр
Важно иметь в виду, что объектная нотация не предусматривает в обозначении объекта особого «отделения» для перечня операций, которые может выполнять объект-экземпляр. Это связано с тем, что операции, выполняемые всеми объектами-экземплярами, идентичны, и поэтому хранить их в каждом объекте-экземпляре было бы накладно. Операции можно хранить в объекте-классе или же можно связать их с объектами-экземплярами другими средствами (реализованными в ПО базовой объектно-ориентированной системы).
Проверь себя
Вопросы и ответы
Как освоить ООП?
Данное пособие помогает начать изучение ООП. Важно заложить прочный фундамент, и данное учебное пособие может помочь в этом.
Приобретя базовые знания, нужно практиковаться в применении объектно – ориентированного подхода. Настоящее мастерство приходит только с опытом. Начните в качестве разработчика объектно – ориентированного проекта. Хорошо во всем разберитесь. По мере освоения объектно – ориентированного подхода начинайте заниматься анализом и разработкой своих собственных проектов. Продолжайте изучение самостоятельно. Читайте книги, статьи, журналы.
Какие парадигмы программирования сегодня широко известны?
Структурное (процедурное) программирование;
Модульное программирование
Объектно – ориентированное программирование.
В чем сущность объектно-ориентированного подхода к программированию?
Основные идеи объектно-ориентированного подхода опираются на следующие положения:
Программа представляет собой модель некоторого реального процесса, части реального мира.
Модель реального мира или его части может быть описана как совокупность взаимодействующих между собой объектов.
Объект описывается набором параметров, значения которых определяют состояние объекта, и набором операций (действий), которые может выполнять объект.
Взаимодействие между объектами осуществляется посылкой специальных сообщений от одного объекта к другому. Сообщение, полученное объектом, может потребовать выполнения определенных действий, например, изменения состояния объекта.
Объекты, описанные одним и тем же набором параметров и способные выполнять один и тот же набор действий представляют собой класс однотипных объектов.
Таким образом, объектно-ориентированный подход предполагает, что при разработке программы должны быть определены классы используемых в программе объектов и построены их описания, затем созданы экземпляры необходимых объектов и определено взаимодействие между ними.
Как вы понимаете термины Класс? Объект? Свойство? Поведение?
Класс – это описание группы объектов. Объект – это реальный представитель определенного класса. Свойство – это характеристика объекта. Поведение – это набор действий, которые может выполнять объект.
В чем сущность объектно-ориентированного подхода к программированию?
Программа представляет собой модель некоторого реального процесса, части реального мира.
Модель реального мира или его части может быть описана как совокупность взаимодействующих между собой объектов.
Взаимодействие между объектами осуществляется посылкой специальных сообщений от одного объекта к другому.
Какую сущность можно назвать объектом?
Каждый объект имеет:
имя объекта (уникальность);
состояние (совокупность свойств);
методы (операции).
Что такое Свойство объекта?
Это его характеристика или признак
Что называется Состоянием объекта?
Состояние объекта характеризуется перечнем всех свойств объекта и текущими значениями каждого из этих свойств
Что такое Метод?
Методы (methods) – это функции(процедуры), принадлежащие классу.
Как вы понимаете термин «message»?
Сообщение (message) - это практически тоже самое, что и вызов функций в обычном программировании. В ООП обычно употребляется выражение "послать сообщение" какому-либо объекту. Понятие "сообщение" в ООП можно объяснить с точки зрения основ ООП: мы не можем напрямую изменить состояние объекта и должны как бы послать сообщение объекту, что мы хотим так и так изменить его состояние. Объект сам меняет свое состояние, а мы только его просим об этом, посылая сообщения.
Как вы понимаете поведение объекта (behavior)?
Для каждого объекта существует определенный набор действий, которые с ним можно произвести.
Контрольные вопросы
Чтобы вы могли лучше разобраться в изучаемом материале, ответьте на предлагаемые вопросы. Ответы содержатся в брошюре «Решения и обсуждения»
Что такое процедурное программирование?
Какими преимуществами обладает процедурное программирование по сравнению с неструктурным программированием?
Что такое модульное программирование?
Какими преимуществами обладает модульное программирование по сравнению с процедурным программированием?
Перечислите недостатки процедурного и модульного программирования.
Что такое объектно – ориентированное программирование?
Каковы шесть преимуществ и целей объектно – ориентированного программирования?
Объясните одну из целей объектно-ориентированного программирования.
Дайте определение следующих терминов: класс, объект, поведение.
Как объекты обмениваются информацией?
Вопросы для самостоятельной работы
(необходимо набрать не менее 6 баллов)
Как вы поняли, объектно-ориентированный подход к программированию – это проще для программиста или сложнее? (1 балл)
Если сложнее, то зачем нам нужен ООП? Какие проблемы с его помощью можно решить? (1 балл)
Назовите главную идею ООП. (1 балл)
Объясните, гарантирует ли использование объектно-ориентированного языка построение объектно-ориентированного проекта? (1 балл)
В чем проблема утконоса? (1 балл)
Как вы понимаете состояние объекта? Поведение объекта? (1 балл)
К какому классу относится объект b1:Book? (1 балл)
Упражнения для самостоятельной работы
(необходимо набрать не менее 6 баллов)
Нарисуйте иерархию классов: стол, стул, шкаф-купе, журнальный столик, мебель, диван, компьютерный стол, стиральная машина, кресло, буфет, шифоньер. Какое понятие здесь лишнее? Почему? (2 балла)
Опишите поведение объекта Иванушка, представленного на языке UML: (1 балл)
Нарисуйте иерархию классов: кошки, шиншиллы, хори, попугаи, кенары, щеглы, крокодильчики, земноводные и другие виды. Добавьте понятие, если требуется. (2 балла)
Опишите на языке UML объект для ИС книжного магазина: книга «Маленький принц» Антуана де Сент Экзюпери, количество страниц 92, продана. (1 балл)
Опишите состояние объекта, представленного на языке UML в информационной системе «Медосмотр»: (1 балл)
Опишите состояние и поведение объекта, представленного на языке UML: (2 балла)
Нарисуйте иерархию классов: царь, царевич, король, королевич, сапожник, портной, пекарь, лекарь. Добавьте обобщающие классы, если требуется. (2 балла)
Опишите состояние и поведение объекта, представленного на языке UML: (2 балла)
Опишите на языке UML объект для ИС зоопарка: зеленый попугай Кеша, возраст – 150 лет, говорящий, любимое слово – «Пиастры». (1 балл)
2012