Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Опорный конспект по программированию (наиболее....doc
Скачиваний:
38
Добавлен:
27.10.2018
Размер:
2.51 Mб
Скачать
      1. Концепции объектно-ориентированного программирования

Объектно-ориентированное программирование базируется на трех ключевых концепциях (рис. 3.20).

Рис. 3.20 Составляющие ООП

Инкапсуляция:

  • объединение данных с методами в одном типе (классе),

  • ограничение доступа к данным объектов и реализации методов классов,

  • использование готовых классов на основе их описаний.

Наследование:

  • возможность создания на основе имеющегося класса новых классов с наследованием всех его свойств и методов и добавлением собственных,

  • класс, не имеющий предшественника, называется базовым.

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

Пример:

Class Животное; *Описание класса*

Название: string;

Размер: integer;

Procedure Перемещаться;

Procedure Размножаться;

End;

Class Животное.Кошка *Экземпляр класса ЖИВОТНОЕ с

Покров: string * новыми свойствами

Procedure Питаться;

Полиморфизм - возможность переопределения методов у класса-наследника.

Например, экземпляр «Мурка» класса ЖИВОТНОЕ выполняет метод «Перемещаться» не так, как экземпляр «Флиппер». Переопределяемый метод имеет то же название, что и у базового класса, однако компилятор распознает, какой конкретно метод следует выполнять.

Рис. 3.21 Наследование свойств и методов класса-родителя классами-потомками

Таким образом, можно создавать собственные операторы, изменяя способ действия существующего оператора при применении его к конкретному объекту. За счет написания специальной методов перегрузки оператора можно заставить любой оператор иначе работать с объектом.

Вопросы для самоконтроля

  1. Назовите три базовые характеристики реальных объектов окружающего мира, воплощенные в понятии «объект» объектно-ориентированного программирования.

  2. Сопоставьте понятия «класс» и «экземпляр класса»

  3. Каким механизмом обеспечивается целостность объекта? Поясните особенности применения ключевых слов Private и Public.

  4. Назовите три ключевые концепции объектно-ориентированного программирования.

  5. Поясните смысл концепции инкапсуляции.

  6. Поясните, что понимается под наследованием в ООП.

Заключение

Вы закончили работу над курсом «Программирование и основы алгоритмизации». Получили теоретические знания в области инструментов, языков и технологий программирования и практические навыки использования этого инструментария для создания работающих компьютерных программ.

Вы познакомились с фундаментальными основами алгоритмизации, освоили базовые алгоритмические структуры и способы их записи на популярных языках программирования, получили навыки обработки основных типов данных.

Надеемся, что Вы сможете применить полученные умения при решении сложных жизненных задач, а полученные знания Вам пригодятся при изучении других дисциплин, в научных исследованиях, дипломном проектировании и в дальнейшей профессиональной деятельности.

3.3. Глоссарий (краткий словарь терминов)

Алгоритм

1. Точное предписание, определяющее вычислительный процесс, ведущий от варьируемых исходных данных к искомому результату

2. Точно определенное формальное описание способа решения задачи путем разбиения ее на конечную по времени последовательность действий (элементарных операций)

Архитектура клиент-сервер

На выделенном мощном компьютере сети (сервере данных) хранятся данные, доступные для модификации компьютерам-клиентам

Архитектура компьютерных приложений

Способ взаимодействия приложений, работающих на разных компьютерах сети

Архитектура файл-сервер

На выделенном мощном компьютере сети (файловом сервере) хранятся файлы, доступные для копирования компьютерам-клиентам

Базовый набор алгоритмических структур

Алгоритм любой степени сложности можно построить с помощью основного базового набора структур: последовательной (линейной), ветвящейся и циклической

Блок-схема алгоритма

Это графический документ, содержащий последовательность предписаний в виде типовых геометрических фигур

Ветвящаяся алгоритмическая структура

Фрагмент алгоритма, в котором в зависимости от исходных данных или промежуточных результатов вычисления реализуются по одному из нескольких заранее предусмотренных направлений

Динамические переменные

переменные, создаваемые и уничтожаемые на разных этапах функционирования программы

Инициализация переменной

Присвоение начального значения

Инкапсуляция

Объединение данных с методами в одном классе и ограничение доступа к ним извне

Интерпретатор

Транслятор, который сразу выполняет команды языка, указанные в тексте программы

Исполнимый код

Законченная программа, которую можно запустить на любом компьютере, где установлена операционная система, для которой эта программа создавалась. Итоговый файл имеет расширение ЕХЕ

Класс

Новый тип данных, основанный на единой структуре сходных объектов

Комментарии

Части исходных текстов, выделяемые с помощью специальных обозначений и пропускаемые компилятором при анализе текста программы

Компилятор

Транслятор, который переводит текст программы, написанной на языке программирования, в машинный код для автономного выполнения

Константы

Данные, которые при выполнении алгоритма (программы) всегда определены и неизменны

Линейная алгоритмическая структура

Отдельные предписания алгоритма выполняются в порядке записи независимо от значений исходных данных и промежуточных результатов

Логические скобки

Объединяют группу операторов в блок

Массив

Упорядоченное множество однотипных переменных (элементов массива), объединенных общим именем и отличающихся номерами (индексами)

Машинный код процессора

Последовательность двоичных чисел

Многозвенная архитектура

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

Наследование

Возможность создания на основе имеющегося класса новых классов с наследованием всех его свойств и методов и добавлением собственных

Объект

Совокупность свойств, методов и событий. Могут иметь идентичную структуру и отличаться только значениями свойств

Оперативная память

Состоит из набора запоминающих ячеек (бит), сгруппированных по 8 штук (байт)

Описание переменных

Указание типа хранимых данных

Отладка программы

Процесс устранения ошибок в программе

Отладчик

Предназначен для анализа работы программы во время ее выполнения (проверка работоспособности алгоритма – семантический анализ)

Переменные

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

Подпрограммы

Новые операторы языка, определяемые программистом

Полиморфизм

Возможность переопределения методов у класса-наследника

Приведение типов данных

Преобразование типов данных друг в друга в соответствии с соглашениями языка программирования

Программа

Логически упорядоченная последовательность команд, необходимых для управления компьютером при решении определенной задачи

Процедуры

Подпрограммы, выполняющие группу операторов

Процессор

Интегральная микросхема, выполняющая основные вычислительные функции компьютера

Псевдокод

Наиболее простая форма представления алгоритма - словесное описание как последовательность предписаний на подмножестве естественного языка

Распределенная (компонентная) архитектура

Приложение рассматривается как набор компонентов, выполняемых на любых серверах, связанных в сеть. Доступ к компонентной системе возможен с мобильных устройств

Редактор связей (сборщик)

Предназначен для связывания объектных модулей и машинного кода стандартных библиотечных функций в работоспособное приложение – исполнимый код для конкретной платформы (типа процессора и операционной системы)

Семантика языка программирования

Смысл конструкций языка

Синтаксис языка программирования

Совокупность правил записи операторов.

Среды быстрого проектирования (Rapid Application Development, RAD-среды)

Реализуют визуальный подход к программированию: элементы оформления оконного интерфейса создаются перетаскиванием готовых визуальных компонентов в проектируемое окно; свойства компонентов настраиваются в редакторах свойств; исходный текст программы генерируется RAD-средой автоматически.

Статические переменные

Переменные, существующие на всем протяжении работы программы

Структурное программирование

Технология пошагового разбиения алгоритма на все более мелкие части с целью получить такие элементы, для которых можно легко написать конкретные предписания

Структуры

Описание разнотипных данных, объединенных одним именем, в виде, максимально приближенном к их реальным аналогам

Текст программы

1. Полное, законченное и детальное описание алгоритма на языке программирования

2. Линейная последовательность операторов базовых алгоритмических структур (операторов присваивания, условных операторов, циклов) и комментариев

Текстовый редактор

Предназначен для написания программы на языке программирования

Тестирование программы

Процесс поиска семантических ошибок в программе

Транслятор

Переводит текст программы в машинный код процессора

Фактические параметры подпрограммы

Указываются и передаются при вызове подпрограммы из главной программы

Формальные параметры подпрограммы

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

Функции

Подпрограммы, вычисляющие значение и передающие его в главную программу

Цикл с заданным условием окончания работы (цикл-ДО)

Тело цикла выполняется хотя бы один раз. Выход из конструкции цикл-ДО осуществляется по достижении заданного значения признака.

Цикл с заданным условием продолжения работы (цикл-ПОКА)

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

Циклическая алгоритмическая структура

Выполнение некоторых операторов (групп операторов) осуществляется многократно с одними и теми же или модифицированными данными

Экземпляр класса

Конкретный объект, имеющий структуру данного класса

Языки программирования

Служат для представления алгоритма в компьютерном виде

Языки программирования высокого уровня

Ориентированы на понимание человеком, не учитывают особенности конкретных компьютерных архитектур, исходные тексты легко переносимы на другие платформы (операционные системы).

Языки программирования низкого уровня

Ориентированы на конкретный тип процессора и учитывают его особенности