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

Содержание

Слайд 2

Объектно-ориентированный подход к проектированию основан на представлении предметной области задачи в

Объектно-ориентированный подход к проектированию основан на представлении предметной области задачи в

виде множества моделей для независимой от языка разработки программной системы на основе ее прагматики.
Слайд 3

Слайд 4

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

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

уменьшение сложности программного обеспечения;
повышение надежности программного

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

Объекты Будем называть объектом понятие, абстракцию или любой предмет с четко

Объекты

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

очерченными границами, имеющий смысл в контексте рассматриваемой прикладной проблемы.
Введение объектов преследует две цели:
понимание прикладной задачи (проблемы);
введение основы для реализации на компьютере.
Объект - это мыслимая или реальная сущность, обладающая характерным поведением и отличительными характеристиками и являющаяся важной в предметной области.
Каждый объект имеет состояние, обладает четко определенным поведением и уникальной идентичностью.
Слайд 6

Состояние Состояние (state) - совокупный результат поведения объекта: одно из стабильных

Состояние

Состояние (state) - совокупный результат поведения объекта: одно из стабильных условий,

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

Поведение В терминологии объектно-ориентированного подхода понятия "действие", "сообщение" и "метод" являются

Поведение

В терминологии объектно-ориентированного подхода понятия "действие", "сообщение" и "метод" являются синонимами.

Т.е. выражения "выполнить действие над объектом", "вызвать метод объекта" и "послать сообщение объекту для выполнения какого-либо действия" эквивалентны.
Поведение (behavior) - действия и реакции объекта, выраженные в терминах передачи сообщений и изменения состояния; видимая извне и воспроизводимая активность объекта.
Слайд 8

Уникальность Уникальность (identity) - свойство объекта; то, что отличает его от

Уникальность

Уникальность (identity) - свойство объекта; то, что отличает его от других

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

Классы Все объекты одного и того же класса описываются одинаковыми наборами

Классы

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

Однако объединение объектов в классы определяется не наборами атрибутов, а семантикой.
Класс - это шаблон поведения объектов определенного типа с заданными параметрами, определяющими состояние. Все экземпляры одного класса (объекты, порожденные от одного класса) имеют один и тот же набор свойств и общее поведение, то есть одинаково реагируют на одинаковые сообщения.
Слайд 10

Графическое представление класса в UML

Графическое представление класса в UML

Слайд 11

Инкапсуляция Инкапсуляция (encapsulation) - это сокрытие реализации класса и отделение его внутреннего представления от внешнего (интерфейса).

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

Инкапсуляция (encapsulation) - это сокрытие реализации класса и отделение его внутреннего

представления от внешнего (интерфейса).
Слайд 12

Наследование Наследование (inheritance) - это отношение между классами, при котором класс

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

Наследование (inheritance) - это отношение между классами, при котором класс использует

структуру или поведение другого класса (одиночное наследование), или других (множественное наследование) классов.
Наследование вводит иерархию "общее/частное", в которой подкласс наследует от одного или нескольких более общих суперклассов. Подклассы обычно дополняют или переопределяют унаследованную структуру и поведение.
Слайд 13

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

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

Слайд 14

Полиморфизм Слово "полиморфизм" греческого происхождения и означает "имеющий много форм".

Полиморфизм

Слово "полиморфизм" греческого происхождения и означает "имеющий много форм".

Слайд 15

Полиморфизм Для описанной выше иерархии классов, используя полиморфизм, можно написать следующий

Полиморфизм

Для описанной выше иерархии классов, используя полиморфизм, можно написать следующий код:

Point

p[] = new Point[1000];
p[0] = new Circle();
p[1] = new Box();
p[2] = new Line();

for(int i = 0; i < p.length;i++)
{ if(p[i]!=null) p[i].draw();}…
Слайд 16

Полиморфизм Под полиморфизмом в ООП понимают способность одного и того же

Полиморфизм

Под полиморфизмом в ООП понимают способность одного и того же программного

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

Типы отношений между классами агрегация (Aggregation); ассоциация (Association); наследование (Inheritance); метаклассы (Metaclass).

Типы отношений между классами

агрегация (Aggregation);
ассоциация (Association);
наследование (Inheritance);
метаклассы (Metaclass).

Слайд 18

Агрегация Отношение между классами типа "содержит" (contain) или "состоит из" называется

Агрегация

Отношение между классами типа "содержит" (contain) или "состоит из" называется агрегацией,

или включением.
// определение класса Fish
public class Fish {
private Aquarium home;
public Fish() { }}
// определение класса Aquarium
public class Aquarium {
private Fish inhabitants[];
public Aquarium() { }}
Слайд 19

Ассоциация Объекты одного класса ссылаются на один или более объектов другого

Ассоциация

Объекты одного класса ссылаются на один или более объектов другого класса,

то ни в ту, ни в другую сторону отношение между объектами не носит характера "владения", или контейнеризации
public class Programmer {
private Computer computers[];
public Programmer() { }
}
public class Computer {
private Programmer programmers[];
public Computer() { }
}