Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Цель: познакомить с теоретическими основами ООП, дать понятие объектной декомпозиции.
Объектно-ориентированное, или объектное, программирование (в дальнейшем ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов. В случае языков с прототипированием вместо классов используются объекты-прототипы. При объектно-ориентированном подходе программные задачи распределяются между объектами программы. Объекты обладают определенным набором свойств, методов и способностью реагировать на события (нажатие кнопок мыши, интервалы времени и т. д.) Чтобы проект можно было считать объектно-ориентированным, объекты должны удовлетворять некоторым требованиям. Этими требованиями являются инкапсуляция, наследование и полиморфизм.
Инкапсуляция - это объединение в единое целое данных и алгоритмов обработки этих данных.
Наследование - есть свойство объектов порождать своих потомков.
Полиморфизм - это свойство родственных объектов (т. е. объектов, имеющих одного общего родителя) решать схожие по смыслу проблемы разными способами.
ООП центральным является понятие класса. Класс – это шаблон, по которому создаются объекты определенного типа. Класс объединяет в себе данные и методы их обработки.
Объекты — это экземпляры определенного класса.
Элементы управления — это объекты, используемые при разработке пользовательского интерфейса.
Первые программы были организованы очень просто. Они состояли из собственно программы на машинном языке и обрабатываемых данных. Сложность программ ограничивалась способностью программиста одновременно мысленно отслеживать последовательность выполняемых операций и местонахождение большого количества данных.
Появление сначала ассемблеров, а затем и языков высокого уровня сделало программу более обозримой за счет снижения уровня детализации и естественно позволило увеличить ее сложность.
Структурное программирование представляет собой совокупность рекомендуемых технологических приемов, охватывающих выполнение всех этапов разработки программного обеспечения.
Были сформулированы основные принципы выполнения разработки:
1. принцип нисходящей разработки, рекомендующий на всех этапах вначале определять наиболее общие моменты, а затем поэтапно выполнять детализацию (что позволяет последовательно концентрировать внимание на небольших фрагментах разработки);
2. собственно структурное программирование, рекомендующее определенные структуры алгоритмов и стиль программирования (чем нагляднее текст программы, тем меньше вероятность ошибки);
3. принцип сквозного структурного контроля, предполагающий проведение содержательного контроля всех этапов разработки.
Метод пошаговой детализации заключается в следующем:
определяется общая структура программы в виде одного из трех вариантов:
последовательности подзадач (например, ввод данных, преобразование данных, вывод данных);
альтернативы подзадач (например, добавление записей к файлу или их поиск);
повторения подзадачи (например, циклически повторяемая обработка данных).
Основные принципы и этапы ООП.
В теории программирования ООП определяется как технология создания сложного программного обеспечения, которая основана на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного типа (класса), а классы образуют иерархию с наследованием свойств
Основное достоинство ООП - сокращение количества межмодульных вызовов и уменьшение объемов информации, передаваемой между модулями, по сравнению с модульным программированием. Основной недостаток ООП - некоторое снижение быстродействия за счет более сложной организации программной системы.
В основу ООП положены следующие принципы:
1) абстрагирование;
2) ограничение доступа;
3) модульность;
4) иерархичность;
5) типизация;
6) параллелизм;
7) устойчивость.
Необходимость ограничения доступа предполагает разграничение двух частей в описании абстракции:
а) интерфейс – совокупность доступных извне элементов реализации абстракции (основные характеристики состояния и поведения);
б) реализация – совокупность недоступных извне элементов реализации абстракции (внутренняя организация абстракции и механизмы реализации ее поведения).
Иерархия - это ранжированная или упорядоченная система абстракций. Принцип иерархичности предполагает использование иерархий при разработке программных систем.
В ООП используются два вида иерархии.
1. Иерархия «целое/часть» – показывает, что некоторые абстракции включены в рассматриваемую абстракцию, как ее части, например, лампа состоит из цоколя, нити накаливания и колбы. Этот вариант иерархии используется в процессе разбиения системы на разных этапах проектирования (на логическом уровне – при декомпозиции предметной области на объекты, на физическом уровне - при декомпозиции системы на модули и при выделении отдельных процессов в мультипроцессной системе).
2. Иерархия «общее/частное» – показывает, что некоторая абстракция является частным случаем другой абстракции, например, «обеденный стол – конкретный вид стола», а «столы – конкретный вид мебели». Используется при разработке структуры классов, когда сложные классы строятся на базе более простых путем добавления к ним новых характеристик и, возможно, уточнения имеющихся.
Объектная декомпозиция.
Объектной декомпозицией называют процесс представления предметной области задачи в виде совокупности функциональных элементов (объектов), обменивающихся в процессе
выполнения программы входными воздействиями (сообщениями).
Каждый выделяемый объект предметной области отвечает
за выполнение некоторых действий, зависящих от полученных сообщений и
параметров самого объекта.
Совокупность значений параметров объекта называют его состоянием, а совокупность реакций на получаемые сообщения - поведением.
В процессе решения задачи объект, получив некоторое сообщение, выполняет заранее определенные действия, например, может изменить собственное состояние, выполнить некоторые вычисления, нарисовать окно или график и, в свою очередь, сформировать сообщения другим объектам. Таким образом, процессом решения задачи управляет последовательность сообщений. Передавая эти сообщения от объекта к объекту, программа выполняет необходимые действия.
Контрольные вопросы
В чем заключается метод пошаговой детализации Основное достоинство ООП Какие принципы положены в основу ООП Какие виды иерархии используются в ООП. Что называется объектной декомпозицией?Лекция 5
Тема: Теоретические основы объектно-ориентированного программирования. Объекты и сообщенния. Классы. Основные средства разработки классов. Дополнительные средства разработки классов.
Цель: ввести понятие класса и познакомить с дополнительными средствами разработки классов
Каждый объект, получая сообщения должен определенным образом «реагировать» на них, выполняя заранее определенные для каждого типа сообщения действия.
Реакция объекта на сообщение может зависеть от его состояния, так объект Файл, получив сообщение «Добавить запись», прежде, чем добавлять запись, должен проверить, открыт ли соответствующий файл, и при закрытом файле должен выдать пользователю отказ на выполнение операции добавления.
Состояние объекта характеризуется набором конкретных значений некоторого перечня всех возможных свойств данного объекта, характеризуется скоростью обслуживания машин, тем, занята колонка или нет, и в занятом состоянии - временем ее освобождения.
Наличие внутреннего состояния объектов означает, что порядок выполнения операций имеет существенное значение, т. е. объект может моделироваться с применением теории конечных автоматов.
Поведение объектов, характеризуется определенным набором реакций на получаемые сообщения и часто зависит от состояния объекта.
Классы.
В любой системе функционирует множество объектов. Некоторые из них «похожи» и однотипны. Однотипные объекты объединяются в классы.
Все объекты одного и того же класса обладают одинаковым интерфейсом и реализуют этот интерфейс одним и тем же способом. Два объекта одного класса в ООП могут отличаться только текущим состоянием, причем всегда теоретически возможно так изменить состояние одного объекта, чтобы он стал равным другому объекту.
Индивидуальные объекты называются экземплярами класса, а класс в ООП — это шаблон по которому строятся объекты. Названия классов в ООП пишутся с большой буквы, а названия объектов — с маленькой.
Интерфейс — это внешняя часть класса. Интерфейс определяет, как объекты данного класса могут взаимодействовать с другими объектами этого или других классов.
Тип — это область определения некой величины, т. е. множество ее возможных значений и набор применимых операций. Тип может задаваться классом.
Важнейшим свойством классов в ООП и их принципиальным отличием от абстрактных типов данных (встроенных в язык программирования) является наследование. Наследование — это отношение между классами, при котором один класс разделяет структуру или поведение одного или нескольких других классов.
Основные средства разработки классов.
Базовый класс, производный класс или оба класса могут иметь конструкторы и/или деструкторы.
Если у базового и у производного классов имеются конструкторы и деструкторы. То конструкторы выполняются в порядке наследования, а деструкторы - в обратном порядке.
Конструктор базового класса выполняется раньше конструктора производного класса.
Деструктор производного класса выполняется раньше деструктора базового класса.
Когда инициализация проводится только в производном классе, аргументы передаются обычным образом. Однако при необходимости передать аргумент конструктору базового класса ситуация несколько усложняется, так как все необходимые аргументы базового и производного классов передаются конструктору производного класса. Затем, используя расширенную форму объявления конструктора производного класса, соответствующие аргументы передаются дальше в базовый класс.
Синтаксис передачи аргументов из производного в базовый класс:
Конструктор_произв_класса (список-арг): базов_класс(список-арг)
{
// тело конструктора производного класса
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |


