Вы находитесь на странице: 1из 28

Основы объектно-

ориентированного
программирования

Чернойван Василий Александрович


va@chernoivan.ru
http://chernoivan.ru/oop/
Классы и объекты
Объектно-ориентированное
программирование

Определение :
Объектно-ориентированное
программирование - это методика
программирования, основанная на
представлении программы в виде
совокупности объектов
Что такое “объект”?
игрушки
люди
деревья
облака
небо
туман
числа
физические законы
правила умножения
радиоволны

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

• Декомпозиция — разбиение системы


на составные части

• Объектная декомпозиция —
разбиение системы на классы и объекты
Объектная декомпозиция: классы

• Фломастеры
- цветные
Хотим рисовать котиков
- ими можно рисовать

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

Методы • Красный
• УзнатьЦвет
Ими
• Рисовать • Черный
можно
рисовать
• Синий

• Зеленый
Состояние объектов
• Новьё, Красный
Характеристики
• Цвет
• •Заправили,
ВозможностьЧерный
рисовать
• Уровень заправки
• Не открывается, Синий

• Высох, Зеленый
Идентичность объектов

• Красный

• Черный

• Синий

• Красный? Х
• С идентификатором “Х”
крестиком
Объекты
• Объект обладает
– состоянием
– поведением
– идентичностью.

• Состояние объекта характеризуется


– набором его характеристик (атрибутов)
– текущими значениями каждого из этих свойств.

• Поведение объекта
– выполнение характерных для него действий

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

Цель нашей системы — иметь возможность


всесторонне исследовать успеваемость в ВУЗе, как
статистику в целом, так и в разрезе отдельных групп,
студентов, предметов
Диаграмма классов на языке UML
Класс на языке C#
Поведение объекта
Поведение объекта определяется функциями (в
смысле языка программирования), которые
• называются методами
• определяются в классе
• ассоциированы (неразрывно связаны) с
объектом
• другими словами – экземпляр это
контекст выполнения метода
Поведение: пример
• Студенты посещают лекции

Класс

Экземпляр
Создание и использование
объектов на C#

Создание
экземпляра

Класс

Экземпляр
Вызов метода
Состояние объекта
(переменные, данные)

Поведение объекта определяется переменными


(в смысле языка программирования), которые
• называются полями объекта
• определяются в классе
• ассоциированы (неразрывно связаны) с
объектом
Состояние объекта
• Студенты учатся в группах
Создание и использование
объектов на C#

Запись состояния
value=“Павел Петров”

Чтение состояния
Стоп!

Мы не подумали о наших коллегах,


которые будут читать наш код!
Класс на языке C#
Сигнатура, прототип и семантика методов

• Сигнатура – имя метода + типы формальных


параметров; Прототип = Сигнатура + тип
возвращаемого значения

• Семантика – определяет смысловую нагрузку


метода и особенности вызова
• Семантику часто нельзя передать средствами языка
программирования
Правильное описание класса
Комментарии на языке UML
Спасибо за внимание

Вопросы?