Слайд 2
Объектно-ориентированный подход к проектированию основан на представлении предметной
области задачи в виде множества моделей для независимой от
языка разработки программной системы на основе ее прагматики.
Слайд 4
Объектно-ориентированный подход обладает преимуществами
уменьшение сложности программного обеспечения;
повышение надежности программного обеспечения;
обеспечение возможности модификации отдельных компонентов
программного обеспечения без изменения остальных его компонентов;
обеспечение возможности повторного использования отдельных компонентов программного обеспечения.
Слайд 5
Объекты
Будем называть объектом понятие, абстракцию или любой
предмет с четко очерченными границами, имеющий смысл в контексте
рассматриваемой прикладной проблемы.
Введение объектов преследует две цели:
понимание прикладной задачи (проблемы);
введение основы для реализации на компьютере.
Объект - это мыслимая или реальная сущность, обладающая характерным поведением и отличительными характеристиками и являющаяся важной в предметной области.
Каждый объект имеет состояние, обладает четко определенным поведением и уникальной идентичностью.
Слайд 6
Состояние
Состояние (state) - совокупный результат поведения объекта: одно
из стабильных условий, в которых объект может существовать, охарактеризованных
количественно; в любой момент времени состояние объекта включает в себя перечень (обычно статический) свойств объекта и текущие значения (обычно динамические) этих свойств.
Слайд 7
Поведение
В терминологии объектно-ориентированного подхода понятия "действие", "сообщение" и
"метод" являются синонимами. Т.е. выражения "выполнить действие над объектом",
"вызвать метод объекта" и "послать сообщение объекту для выполнения какого-либо действия" эквивалентны.
Поведение (behavior) - действия и реакции объекта, выраженные в терминах передачи сообщений и изменения состояния; видимая извне и воспроизводимая активность объекта.
Слайд 8
Уникальность
Уникальность (identity) - свойство объекта; то, что отличает
его от других объектов.
В машинном представлении под параметром
уникальности объекта чаще всего понимается адрес размещения объекта в памяти.
Слайд 9
Классы
Все объекты одного и того же класса описываются
одинаковыми наборами атрибутов. Однако объединение объектов в классы определяется
не наборами атрибутов, а семантикой.
Класс - это шаблон поведения объектов определенного типа с заданными параметрами, определяющими состояние. Все экземпляры одного класса (объекты, порожденные от одного класса) имеют один и тот же набор свойств и общее поведение, то есть одинаково реагируют на одинаковые сообщения.
Слайд 10
Графическое представление класса в UML
Слайд 11
Инкапсуляция
Инкапсуляция (encapsulation) - это сокрытие реализации класса и
отделение его внутреннего представления от внешнего (интерфейса).
Слайд 12
Наследование
Наследование (inheritance) - это отношение между классами, при
котором класс использует структуру или поведение другого класса (одиночное
наследование), или других (множественное наследование) классов.
Наследование вводит иерархию "общее/частное", в которой подкласс наследует от одного или нескольких более общих суперклассов. Подклассы обычно дополняют или переопределяют унаследованную структуру и поведение.
Слайд 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).
Слайд 18
Агрегация
Отношение между классами типа "содержит" (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() { }
}