
- •Основные парадигмы программирования
- •Основные парадигмы программирования и языки их реализующие
- •Алгоритмическая декомпозиция
- •Значение функций
- •Виды функций
- •Алгоритмическая декомпозиция. Пример
- •Работа с функциями
- •Процедуры и функции – методы
- •Методы как процедуры и функции
- •Методы как процедуры и функции
- •Рекомендации по использованию функций
- •Передача параметров
- •Передача параметров
- •Объектно-ориентированное программирование
- •Объектная модель
- •Объектно-ориентированный подход
- •Объектно-ориентированная декомпозиция
- •Классы и объекты
- •Класс
- •Главные элементы объектной модели
- •Абстрагирование
- •Инкапсуляция
- •Модульность
- •Иерархия
- •Наследование
- •Расширение базовых классов
- •Роль наследования
- •Наследование и инкапсуляция
- •Спецификаторы доступа
- •Спецификаторы доступа
- •Обобщение в диаграммах классов в UML
- •Многоуровневая иерархия. Пример
- •Модель включения/делегации
- •Агрегация (aggregation)
- •Пример отношения агрегации
- •Композиция (composition)
- •Пример отношения композиции
- •Пример Car_Radio.
- •Полиморфизм
- •Доступ к виртуальным методам
- •Практическое

Рекомендации по использованию функций
Функции должны быть компактными
Функция должна выполнять только одну операцию
Используйте содержательные имена
В идеальном случае количество аргументов функции равно нулю
Объекты как аргументы
Разделение команд и запросов
Используйте исключения вместо возвращения кодов ошибок
Изолируйте блоки try/catch

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

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

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

Объектная модель
Для объектно-ориентированного стиля концептуальная база - это объектная модель.
объектом может быть:
автомобиль,
человек и т.д.
объекты обладают свойствами:
цвет,
размер и т.д.
они обнаруживают поведение:
начинают функционировать
менять состояние в ответ на определенный набор внешних воздействий и т.д.

Объектно-ориентированный подход
Основополагающая идея объектно- ориентированного подхода:
объединение данных и действий, производимых над данными, в единое целое, которое называется
объектом
Функции объекта, называемые методами или
функциями-членами, предназначены для
доступа к данным объекта. |
Объект |
Структура программы:

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

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

Класс
Класс — это структура данных, объединяющая состояние (поля) и действия (методы и другие функции-члены).
Класс предоставляет определения для динамически создаваемых экземпляров класса (объектов класса).
Классы поддерживают механизмы наследования и полиморфизма, которые позволяют создавать производные классы, расширяющие функциональные возможности
базового класса.
public class Point
{
public int x, y;
public Point(int x, int y) { this.x = x;
this.y = y;
}
}

Главные элементы объектной модели
Абстрагирование
Инкапсуляция
Модульность
Иерархия
Полиморфизм