Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Основные задачи структурного программирования

Принципы ООП | Элементы классов | Области видимости | Типы методов | Переопределение методов | Перегрузка методов | Свойства | Объявление и создание объекта | Уничтожение объекта | События. Взаимодействие объектов. |


Читайте также:
  1. I. . Психология как наука. Объект, предмет и основные методы и психологии. Основные задачи психологической науки на современном этапе.
  2. I. Основные положения по организации практики
  3. I. Основные фонды торгового предприятия.
  4. I. Учебные задачи курса, рассчитанные на 10 учебных семестров
  5. I.2. Основные задачи на период с 2006 по 2020 годы
  6. I.Основные законы химии.
  7. II. Место педагогики в системе наук о человеке. Предмет и основные задачи педагогики

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

1. Повышение эффективности разработки программ: а) увеличение скорости написания программ; б) увеличение качества их сопровождения (внесения усовершенствований, исправления ошибок); в) уменьшение стоимости разработки; г) обеспечение возможности групповой работы с проектом; д) обеспечение возможности проектирования ПО (software engineering).

2. Повышение надежности работы программ. Никому не нужна дешевая, мгновенно написанная и занимающая мало ресурсов программа, которая работает очень быстро, но с ошибками. Из программистского фольклора: “Беремся написать вам ПО: 1. Быстро 2.дешево 3.надежно. – Два из трех.

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

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

Языки, поддерживающие объектно-ориентированное программирование, в настоящее время занимают прочное положение среди основных тенденций программирования. Начиная с языка COBOL и заканчивая языком LISP, практически для каждого языка были разработаны объектно-ориентированные диалекты. К ним относятся языки C++, Ada 95 и CLOS, а также объектно-ориентированная версия языка LISP (Bobrow et al., 1988). Языки C++ и Ada 95, кроме объектно-ориентированного программирования, поддерживают процедурно-ориентированное и информационно-ориентированное программирование. Язык CLOS поддерживает также функциональное программирование.

Некоторые из современных языков, разработанных для объектно-ориентированного программирования, не поддерживают другие парадигмы программирования, но продолжают использовать некоторые основные структуры прежних императивных языков и внешне на них похожи. К таким языкам относятся Eiffel и Java. Кроме того, существует один полностью объектно-ориентированный язык, являющийся совершенно нетрадиционным, — Smalltalk. Язык Smalltalk был первым языком, предназначенным для полной поддержки объектно-ориентированного программирования.

Введение понятия класса является естественным развитием идей модульности. В классе структуры данных и функции их обработки объединяются. Класс используется только через его интерфейс – детали реализации для пользователя класса несущественны.

Идея классов отражает строение объектов реального мира – каждый предмет или процесс обладает набором характеристик или отличительных черт, иными словами свойствами и поведением. Программы часто предназначены для моделирования предметов, процессов и явлений реального мира, поэтому в языке программирования удобно иметь адекватный инструмент для представления моделей.

Основные понятия и принципы ООП

Класс (classes) является типом данных, определяемых пользователем. В классе задаются свойства и поведение какого-либо предмета или процесса в виде полей данных и функций для работы с ними.

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

Идея классов является основной объектно-ориентированного программирования (ООП). Основные принципы ООП были разработаны еще в языках Simula-67 и SmallTalk, но в то время не получили широкого распространения из-за трудностей освоения и низкой эффективности реализации.

Конкретные величины типа данных «класс» называют экземплярами класса или объектами (objects).

Подпрограммы, определяющие операции над объектами класса, называются методами (methods). Вызовы методов называются сообщениями (messages). Весь набор методов объекта называется протоколом сообщений (message protocol), или интерфейсом сообщений (message interface) объекта. Сообщение должно иметь, по крайней мере, две части: конкретный объект, которому оно должно быть послано, и имя метода, определяющего необходимое действие над объектом. Таким образом, вычисления в объектно-ориентированной программе определяются сообщениями, передаваемыми от одного объекта к другому.

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

ООП — это метод программирования, развивающий принципы структурного программирования и основанный на следующих абстракциях данных:

I. Инкапсуляция: объединение данных с процедурами и функциями в единый блок программного кода (данные и методы работы с ними рассматриваются как поля объекта).

II. Наследование – передача методов и свойств от предка к потомку, без необходимости написания дополнительного программного кода (наличие экземпляров класса; потомки, прародители, иерархия).

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


Дата добавления: 2015-07-25; просмотров: 62 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
От структурированного программирования к ООП| Наследование

mybiblioteka.su - 2015-2024 год. (0.008 сек.)