- •Преимущества
- •Связь: ooa→oop→ood
- •Механизм работы virtual
- •Абстрактный класс
- •Виртуальный деструктор
- •{Основные элементы языка программирования}
- •Основные подходы к семантике:
- •Формальное описание семантики:
- •Среда программирования
- •Объекты данных
- •Атрибуты объекта данных
- •Система типизации данных
- •Реализация типов данных
- •Типизация
- •Система типизации данных
- •Реализация типов данных
- •Связывание переменных
- •Контроль типов
- •Статистический контроль типов
- •Алгоритм статистического контроля типов
- •Динамический контроль типов
- •Параллелизм
- •Полиморфизм
- •Статический полиморфизм
- •Динамический полиморфизм
- •Преобразование типов
- •Связь: ooa→oop→ood
- •Среда программирования
- •Цель технологий параллелизма
- •Схемы параллелизма
- •Проблемы параллельного программирования
- •Показатели эффективности параллельного алгоритма Ускорение
- •Закон Густавсона-Барсиса
- •Масштабируемый алгоритм
- •Схемы параллелизма
- •Подтипы данных
- •Разновидности массивов. Статические
- •Кортежи
- •Разновидности массивов. Статические
- •Динамические
- •Атрибуты объекта данных
- •Операции над целыми числами
- •Вещественные числа
- •Числа с фиксированной точкой
- •Числа с плавающей точкой(float)
- •Ошибки вычислений с вещественными числами
- •Утечки памяти и повисшие указатели
- •Указатели на указатели
- •Типизированные указатели
- •Указатели на функции
- •[Отличия указателей и ссылок]
- •Параметры подпрограмм
- •Преимущества подпрограмм
- •Позиционное сопоставление
- •Сопоставление по имени
- •Методы передачи параметров:
- •Передача параметров по значению
- •Передача параметров по ссылке
- •Передача параметров по значению-результату
- •Параметр по результату
- •Стековые языки
- •Циклы и рекурсия
- •Циклы со счетчиком
- •Операторы циклы без заданного числа повторений (бесконечно)
- •Динамический полиморфизм
- •Родовые (настраиваемые) сегменты и шаблоны
Статический полиморфизм
• Статический полиморфизм – множественные формы конкретизируются на этапе компиляции.
1. Преобразование типов – значение преобразуется из одного типа в другой.
2. Перегрузка – одно и то же имя используется для двух или нескольких разных объектов или подпрограмм (включая операции).
3. Родовой (настраиваемый) сегмент – параметризованный шаблон подпрограммы, используется для создания различных конкретных экземпляров подпрограмм.
Динамический полиморфизм
• Динамический полиморфизм – структурная неопределенность сохраняется до этапа выполнения.
1. Вариантные и неограниченные записи – одна переменная может иметь значение разных типов.
2. Диспетчеризация во время выполнения – механизм, посредством которого разрешение обращения к преопределенному методу осуществляется во время выполнения, а не во время компиляции. Этот полиморфизм реализуется с помощью виртуальных функций.
Преобразование типов
• Преобразование типов – значение преобразуется из одного типа в другой.
1. Перевод значения одного типа к значению другого типа.
2. Пересылка значения как не интерпретируемой строки битов.
• Изменение типа, которое не затрагивает базовые биты значения, называют не преобразующим явным преобразованием типа.
• Не преобразующее приведение типа в С достигается взятием адреса от объекта, преобразованием типа полученного указателя и последующего разыменования.
25. Объектно-ориентированное программирование. Основные концепции объектно-ориентированного программирования.
ОПП- это методология программирования основанная на представлении программы совокупностью объектов, каждый из которых является экземпляром определенного класса, а классы образует иерархию наследования.
В центре ООП находится понятие объекта. Объект — это сущность, которой можно посылать сообщения, и которая может на них реагировать, используя свои данные. Объект — это экземпляр класса. Данные объекта скрыты от остальной программы. Сокрытие данных называется инкапсуляцией.
ЯП является ОО тогда и только тогда когда выполняются след условия:
- Поддерживаются объекты
- Объекты относятся к соответствующим классам
- Классы могут наследовать структуры суперклассов
ООтехнология основывает на след основных принцпах:
1. Абстрагирования(выделение существенных характеристик объекта из несущественных)
2. Инкапсуляция(Скрытие и/или изоляция реализации элементов программы)
3. Модульность(принцип, согласно которому логически связанные между собой подпрограммы, переменные и т. д. группируются в отдельные файлы )
4. Иерархичность(упорядоченность абстракций по уровням)
Наследование-отношение между классами, когда 1 класс заимствует структурную или/и функциональную часть другого
Типы наследования:
Одиночное: 1 предок-1 потомок
Множественные: много предков-1 потомок/ 1 предок - много потомков
Сохраняемость - способность объекта переживать во времени породивший его процесс.
Преимущества объектной модели:
1. Возможности использования ООЯ
2.повышает уровень унификации разработки
3. Увеличение стабильности системы, упрощение внесения изменений
4. Ориентация на человеческое восприятие мира
Класс- абстрактный тип данных, снабженный некоторыми возможностями реализации.
Одновременно является и модулем и типом. Характеризуется атрибутами и методами.
Отношения между классами:
1.Ассоциация-
2. Агрегация
3. Композиция
<Объектно-ориентированное программирование (ООП)>
• Описывает статическую структуру системы, показывая ее классы, их атрибуты и методы, и также взаимосвязи этих классов.
• (ООP) (объектно-ориентированное программирование) – это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.
• (OOD) (Объектно-ориентированное проектирование) – это методология проектирования, соединяющая в себе процесс объектной декомпиляции и примеры представления логической и физической, а также статистикой и динамической моделей проектируемой системы.
• (OOA) (Объектно-ориентированный анализ) – это методология, при которой требования к системе воспринимаются с точки зрения классов и объектов, выявленных в предметной области.
