Главная страница
Навигация по странице:

  • Объект

  • Основные принципы объектно-ориентированного программирования

  • Проект. Этапы разработки проекта Результатом процессов программирования и проектирования является проект

  • Компиляция проекта в приложение

  • Объектно-ориентированные языки

  • Тема 3.1 (1). Тема 1 основы объектноориентированного программирования (ооп) Объектноориентированное программирование (ооп)


    Скачать 446.14 Kb.
    НазваниеТема 1 основы объектноориентированного программирования (ооп) Объектноориентированное программирование (ооп)
    Дата04.02.2023
    Размер446.14 Kb.
    Формат файлаpdf
    Имя файлаТема 3.1 (1).pdf
    ТипДокументы
    #920216

    Тема 3.1 ОСНОВЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО
    ПРОГРАММИРОВАНИЯ (ООП)
    Объектно-ориентированное программирование (ООП) – это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.
    Взаимодействие программных объектов в такой системе осуществляется путем передачи сообщений (рис.1).
    Рисунок 1 - Взаимодействие программных объектов
    Системы объектно-ориентированного программирования (ООП) дают возможность визуализировать процесс создания графического интерфейса разрабатываемого приложения. Взаимодействие программных объектов между собой и их изменения описываются с помощью программного кода. Создание программного кода в ООП базируется на использовании алгоритмических структур различных типов (линейной, ветвления, цикла), исполнителями которых выступают программные объекты.
    В основе объектно-ориентированного язык программирования лежат два основных понятия: объект и класс.
    Объект – это структурированная переменная, содержащая всю информацию о некотором физическом предмете или реализуемом в программе понятии.
    Класс – это описание множества объектов программирования (объектов) и выполняемых над ними действий.
    Пример, допустим, нам в программе необходимо работать со странами. Страна
    – это абстрактное понятие. У нее есть такие характеристики, как название, население, площадь, флаг и другое. Для описания такой страны будет
    использоваться класс с соответствующими полями данных. Такие страны, как
    Россия и Украина будут уже объектами (конкретными представителями типа страна).
    Объект в программировании — некоторая сущность в виртуальном пространстве, обладающая определенным состоянием и поведением, имеющая заданные значения свойств (атрибутов) и операций над ними, т.е. объект имеет состояние, поведение и идентичность.
    Состояние объекта характеризуется перечнем (обычно статическим) всех свойств данного объекта и текущими (обычно динамическими) значениями каждого из этих свойств. Каждый объект обладает определенным набором свойств, первоначальные значения которых можно установить. Свойства – это характеристики объекта.
    Поведение - это то, как объект действует и реагирует; поведение выражается в терминах состояния объекта и передачи сообщений. Иными словами, поведение объекта - это его наблюдаемая и проверяемая извне деятельность.
    Операцией называется определенное воздействие одного объекта на другой с целью вызвать соответствующую реакцию.
    C одной стороны, поведение объекта изменяет его состояние. С другой – поведение зависит от состояния. Поведение объекта строится из его операций.
    Существует три вида операций
    - Модификатор - операция, которая изменяет состояние объекта;
    - Селектор - операция, считывающая состояние объекта, но не меняющая состояния;
    - Итератор - операция, позволяющая организовать доступ ко всем частям объекта в строго определенной последовательности.
    Идентичность - это такое свойство объекта или такой набор свойств, который отличает его от всех других объектов.
    Программные объекты обладают свойствами, могут использовать методы и реагируют на события.
    Каждый объект обладает определенным набором свойств, первоначальные значения которых можно установить. Значения свойств объектов можно изменять и в программном коде:
    Объект.Свойство := Значение Свойства
    Метод в объектно-ориентированном программировании — это функция или процедура, принадлежащая какому-то классу или объекту. Метод состоит из некоторого количества операторов для выполнения какого-то действия и имеет набор входных аргументов.
    Различают простые методы и статические методы (методы класса):
    - простые методы имеют доступ к данным объекта (конкретного экземпляра данного класса),
    - статические методы не имеют доступа к данным объекта и для их использования не нужно создавать экземпляры (данного класса).
    Методы предоставляют интерфейс, при помощи которого осуществляется доступ к данным объекта некоторого класса, тем самым, обеспечивая инкапсуляцию данных. В зависимости от того, какой уровень доступа предоставляет тот или иной метод, выделяют:
    - открытый (public) интерфейс — общий интерфейс для всех пользователей данного класса;

    - защищѐнный (protected) интерфейс — внутренний интерфейс для всех наследников данного класса;
    - закрытый (private) интерфейс — интерфейс, доступный только изнутри данного класса.
    Событие в объектно-ориентированном программировании — это сообщение, которое возникает в различных точках исполняемого кода при выполнении определенных условий. События предназначены для того, чтобы иметь возможность предусмотреть реакцию программного обеспечения. Для решения поставленной задачи создаются обработчики событий: как только программа попадает в заданное состояние, происходит событие, посылается сообщение, а обработчик перехватывает это сообщение.
    Событие, по сути, сообщает об изменении состояния некоторого объекта.
    Событие может создаваться пользователем (щелчок мышью или нажатие клавиши) или быть результатом воздействия других объектов. В качестве реакции на событие вызывается определенная процедура, которая может изменять свойства объекта или вызывать его методы.
    Основные принципы объектно-ориентированного программирования
    ООП сочетает лучшие принципы структурного программирования с новыми мощными концепциями, базовые из которых называются инкапсуляцией, полиморфизмом и наследованием
    1) Инкапсуляция — это объединение в единое целое данных и алгоритмов обработки этих данных. В рамках ООП данные называются полями объекта
    (свойствами), а алгоритмы - объектными методами или просто методами.
    2) Наследование - способности языка позволять строить новые определения классов на основе определений существующих классов. По сути, наследование позволяет расширять поведение базового (или родительского) класса, наследуя основную функциональность в производном подклассе
    (также именуемом дочерним классом) Т.е. наследование представляет собой процесс, в ходе которого один объект приобретает свойства другого объекта.
    3) Полиморфизм - это свойство родственных объектов (т.е. объектов, имеющих одного общего родителя) решать схожие по смыслу проблемы разными способами. В общем смысле, концепцией полиморфизма является идея "один интерфейс, множество методов". Это означает, что можно создать общий интерфейс для группы близких по смыслу действий. Выбор конкретного действия, в зависимости от ситуации, возлагается на компилятор.
    ООП также характеризуется следующими принципами:
    - все является объектом;
    - вычисления осуществляются путем взаимодействия (обмена данными) между объектами, при котором один объект требует, чтобы другой объект выполнил некоторое действие; объекты взаимодействуют, посылая и получая сообщения; сообщение — это запрос на выполнение действия, дополненный набором аргументов, которые могут понадобиться при выполнении действия;
    - каждый объект имеет независимую память, которая состоит из других объектов;
    - каждый объект является представителем класса, который выражает общие свойства объектов данного типа;

    - в классе задается функциональность (поведение объекта); тем самым все объекты, которые являются экземплярами одного класса, могут выполнять одни и те же действия;
    - классы организованы в единую древовидную структуру с общим корнем, называемую иерархией наследования; память и поведение, связанное с экземплярами определенного класса, автоматически доступны любому классу, расположенному ниже в иерархическом дереве.
    Проект. Этапы разработки проекта
    Результатом процессов программирования и проектирования является проект, который объединяет в себе программный код и графический интерфейс.
    Графический интерфейс необходим для реализации интерактивного диалога пользователя с запущенным на выполнение готовым проектом.
    Визуальное программирование позволяет делать графический интерфейс разрабатываемых приложений на основе форм и управляющих элементов. В роли основных объектов при визуальном программировании выступают формы (Forms).
    Форма представляет собой окно, на котором размещаются управляющие элементы.
    Управляющие элементы
    — это командные кнопки
    (CommandButton), переключатели, или «флажки» (Checkbox), поля выбора, или «радиокнопки»
    (OptionsButton), списки (ListBox), текстовые поля (TextBox) и др.
    Этапы разработки проекта:
    1) Определяется цель проекта (что в конечном итоге должно получиться).
    2) Разрабатывается алгоритм решения задачи.
    3) Определяется перечень входных и выходных данных, формулы расчета.
    4) Определяются имена и типы используемых в проекте переменных.
    5) Определяются способы ввода и вывода данных в проекте.
    6) Разрабатывается интерфейс формы, и задаются свойства и методы для неё.
    7) На форме размещаются элементы управления и задаются для них свойства и методы управления.
    8) Записываются процедуры в окне кода программы.
    9) Выполняется запуск, тестирование и отладка программы.
    10) Выполняется сохранение проекта.
    Компиляция проекта в приложение. Сохраненный проект может выполняться только в самой системе программирования. Для того чтобы преобразовать проект в приложение, которое может выполняться непосредственно в среде операционной системы, необходимо выполнить компиляцию проекта, в процессе которой приложение сохраняется в исполнимом файле (с расширением ехе).
    Объектно-ориентированные языки
    Многие современные языки специально созданы для облегчения объектно- ориентированного программирования. Однако следует отметить, что можно применять техники ООП и для не-объектно-ориентированного языка и наоборот, применение объектно-ориентированного языка вовсе не означает, что код автоматически становится объектно-ориентированным.
    Как правило, объектно-ориентированный язык (ООЯ) содержит следующий набор элементов:
    - Объявление классов с полями (данными — членами класса) и методами
    (функциями — членами класса).

    - Механизм расширения класса (наследования) — порождение нового класса от существующего с автоматическим включением всех особенностей реализации класса-предка в состав класса-потомка. Большинство ООЯ поддерживают только единичное наследование.
    - Полиморфные переменные и параметры функций (методов), позволяющие присваивать одной и той же переменной экземпляры различных классов.
    - Полиморфное поведение экземпляров классов за счёт использования виртуальных методов. В некоторых ООЯ все методы классов являются виртуальными.
    Некоторые языки добавляют к указанному минимальному набору те или иные дополнительные средства. В их числе:
    - Конструкторы, деструкторы, финализаторы;
    - Свойства (аксессоры);
    - Индексаторы;
    - Средства управления видимостью компонентов классов (интерфейсы или модификаторы доступа, такие как public, private, protected, feature и др.).
    Одни языки отвечают принципам ООП в полной мере — в них все основные элементы являются объектами, имеющими состояние и связанные методы. Примеры подобных языков — Smalltalk, Eiffel. Существуют гибридные языки, совмещающие объектную подсистему в целостном виде с подсистемами других парадигм как «два и более языка в одном», позволяющие совмещать в одной программе объектные модели с иными, и размывающие грань между объектно-ориентированной и другими парадигмами за счёт нестандартных возможностей, балансирующих между
    ООП и другими парадигмами (таких как множественная диспетчеризация, параметрические классы, возможность манипулировать методами классов как самостоятельными объектами, и др.).
    Примеры таких языков: CLOS, Dylan, OCaml, Python, Ruby, Objective-C.
    Однако, наиболее распространены языки, включающие средства эмуляции объектной модели поверх более традиционной императивной семантики. Алан Кэй назвал такие языки
    «склеиванием возможностей» (англ. agglutination of features) в противовес «чистоте стиля» (англ. crystalization of style) языков, воплощающих некую парадигму непосредственно.
    Примеры таких языков — Симула, C++, Visual
    Basic, Delphi, Модула, Модула-2, Java, C#, PHP.


    написать администратору сайта