Объектно-ориентированный подход как технология программирования

Реферат

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

Объектно-ориентированный язык программирования должен обладать следующими свойствами:

1. Абстракции – формальное о качествах или свойствах предмета путем мысленного удаления некоторых частностей или материальных объектов;

2. Инкапсуляции – механизма, связывающего вместе код и данные, которыми он манипулирует, и защищающего их от внешних помех и некорректного использования;

3. Наследования – процесса, с помощью которого один объект приобретает свойства другого, т.е. поддерживается иерархической классификации;

4. Полиморфизма – свойства, позволяющего использовать один и тот же интерфейс для общего класса действий.

Разработка объектно-ориентированных программ состоит из следующих последовательных работ:

  • определение основных объектов, необходимых для решения данной задачи;
  • определение закрытых данных (данных состояния) для выбранных объектов;
  • определение второстепенных объектов и их закрытых данных;
  • определение иерархической системы классов, представляющих выбранные объекты;
  • определение ключевых сообщений, которые должны обрабатывать объекты каждого класса;
  • разработка последовательности выражений, которые позволяют решить поставленную задачу;
  • разработка методов, обрабатывающих каждое сообщение;
  • очистка проекта, то есть устранение всех вспомогательных промежуточных материалов, использовавшихся при проектировании;
  • кодирование, отладка, компоновка и тестирование.

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

50 стр., 24567 слов

«Разработка методической поддержки базового курса информатики ...

... программирования в базовом курсе информатики. Создать сайт учителя. Структура дипломной работы. ... высококвалифицированным программистом программы ... программирования относятся: процедурное программирование ( Pascal , Basic, Fortran , С ); логическое программирование ( Prolog ); функциональное программирование ( Lisp ); объектно-ориентированное программирование ... данных обеспечивают удобство работы, ...

1. Что такое объектно-ориентированное программирование

Элементы объектно-ориентированного программирования (ООП) появились в начале 70-х годов в языке моделирования «Симула», затем получили свое развитие, и в настоящее время ООП принадлежит к числу ведущих технологий программирования.

Основная цель ООП, как и большинства других подходов к программированию – повышение эффективности разработки программ. Идеи ООП оказались плодотворными и нашли применение не только в языках программирования, но и в других областях, например, в области разработки операционных систем.

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

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

2. Объекты

Базовым в объектно-ориентированном программировании является понятие объекта. Объект имеет определённые свойства. Состояние объекта задаётся значениями его признаков. Объект «знает», как решать определённые задачи, то есть располагает методами решения. Программа, написанная с использованием ООП, состоит из объектов, которые могут взаимодействовать между собой.

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

10 стр., 4531 слов

Создание программы

... компьютере. Их назначение - помочь программисту продумать разработку программы прежде, чем попытаться написать ее на языке программирования. Тщательно подготовленная программа на псевдокоде может быть легко преобразована в ... lt; «Я»; коды всех строчных букв меньше всех прописных. Для работы с таким типом данных часто используются функции, аргументы которых могут быть символьными переменными (табл. ...

В отличие от типа «запись», объектный тип содержит не только поля, описывающие данные, но также процедуры и функции, описания которых содержится в описании объекта. Эти процедуры и функции называют методами. Методам объекта доступны его поля. Следует отметить, что методы и их параметры определяются в описании объекта, а их реализация даётся вне этого описания, в том мест программы, которое предшествует вызову данного метода. В описании объекта фактически содержаться лишь шаблоны обращения к методам, которые необходимы компилятору для проверки соответствия количества параметров и их типов при обращении к методам.

3.Абстракция

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

Например: люди не представляют себе автомобиль как набор десятков тысяч индивидуальных частей (деталей).

В их воображении автомобиль – хорошо определенный объект со своим собственным уникальным поведением. Эта абстракция позволяет людям использовать автомобиль, не задумываясь над сложностью деталей, из которых он состоит.

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

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

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

Предположим, например, что имеется «не-ООП» программа, предназначенная для начисления заработной платы сотрудникам некой организации, а в программе имеются два массива. Один массив хранит величину заработной платы, а другой – телефонные номера сотрудников (для составления отчёта для налоговой инспекции).

15 стр., 7227 слов

Понятие, разработка и проектирование баз данных

... Серверы БД реализуют функции управления базами данных, запрашиваемые другими (клиентскими) программами обычно с помощью операторов ... разработки компьютерных информационных систем, основу которых составляют особым образом структурированные файлы, предоставляющие пользователю эффективные методы получения и анализа данных, необходимых для принятия оптимального решения. Системы управления базами данных ...

Что произойдёт, если программист случайно перепутает эти массивы? Очевидно, для бухгалтерии начнутся тяжёлые времена. «Жёсткое» связывание данных и процедур их обработки в одном объекте позволит избежать неприятностей такого рода. Инкапсуляция и является средством организации доступа к данным только через соответствующие методы.

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

Наследование – это ещё одно базовое понятие объектно-ориентированного программирования. Наследование позволяет определять новые объекты, используя свойства прежних, дополняя или изменяя их. Объект-наследник получает все поля и методы «родителя», к которым он может добавить свои собственные поля и методы или заменить («перекрыть») их своими методами. Наследник сохраняет свойства совместимости с другими объектами своего родителя. Если непосредственный родитель единственный, то наследование называется простым, а если таких классов несколько – то множественным.

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

5. Полиморфизм

Полиморфизм на первый взгляд кажется самой малоинтересной и малоперспективной парадигмой, но на самом деле это совсем не так.

Полиморфизм заключается в том, что одно и то же имя может соответствовать различным действиям в зависимости от типа объекта. Решение о том, какая операция должна быть выполнена в конкретной ситуации, принимается во время выполнения программы. Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций». Возможность приписывать разную функциональность одному методу (функции, операции) называется перегрузкой метода (перегрузкой функций, перегрузкой операций).

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

Заключение

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

7 стр., 3050 слов

Современные технологии программирования

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

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

Список литературы

[Электронный ресурс]//URL: https://inzhpro.ru/referat/tehnologiya-obyektno-orientirovannogo-programmirovaniya/

1479665 [В Интернете] // studfiles. – 3 12 2015 г.. – http://www.studfiles.ru/preview/1479665/.

1d [В Интернете] // objectorient. – 3 12 2015 г.. – http://objectorient.narod.ru/1d.htm.

ipn [В Интернете] // codenet. – 3 12 2015 г.. – http://www.codenet.ru/progr/cpp/ipn.php.

polymorphism [В Интернете] // java-course. – 3 12 2015 г.. – http://java-course.ru/begin/polymorphism/.

Основные_принципы_ООП:_инкапсуляция,_наследование,_полиморфизм [В Интернете] // wikia. – 3 12 2015 г.. – .