Базовые понятия объектно-ориентированного программирования
Базовые понятия объектно-ориентированного программирования
Объектно-ориентированное программированиепредставляет собой дальнейшее развитие идей структурного программирования, основной целью которого является создание программ простой структуры.
Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Просмотр содержимого документа
«Базовые понятия объектно-ориентированного программирования»
БАЗОВЫЕ ПОНЯТИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
Подготовила Тулаева И.С. МДМ-219
Введение
Объектно-ориентированное программирование представляет собой дальнейшее развитие идей структурного программирования, основной целью которого является создание программ простой структуры.
Структурная программа состоит из совокупности подпрограмм, связанных с помощью интерфейсов. Подпрограмма работает с данными, которые либо являются локальными, либо передаются ей в качестве параметров. Каждая подпрограмма предназначена для работы с определенными типами данных.
Объект, или класс, является абстрактным типом данных, создаваемым программистом. При описании класса определяются его поля (данные) и методы (подпрограммы их обработки). Конкретные переменные объектного типа называются экземплярами объекта .
Преимуществам ООП
использование при программировании понятий, более близких к предметной области;
более простая структура программы в результате инкапсуляции, т.е. объединения свойств и поведения объекта и скрытия деталей его реализации;
возможность повторного использования кода за счет наследования;
сравнительно простая возможность модификации программы;
возможность создания библиотек объектов.
История
ООП возникло в результате развития идеологии процедурного программирования, где данные и подпрограммы (процедуры, функции) их обработки формально не связаны.
Первым языком программирования, в котором были предложены принципы объектной ориентированности, была Симула. В момент своего появления в 1967 году, этот язык программирования предложил поистине революционные идеи: объекты, классы, виртуальные методы и др., однако это всё не было воспринято современниками как нечто грандиозное. Тем не менее, большинство концепций были развиты Аланом Кэйем и Дэном Ингаллсом в языке Smalltalk. Именно он стал первым широко распространённым объектно-ориентированным языком программирования.
Сложности определения
ООП имеет уже более чем сорокалетнюю историю, но, несмотря на это, до сих пор не существует чёткого общепринятого определения данной технологии. Основные принципы, заложенные в первые объектные языки и системы, подверглись существенному изменению (или искажению) и дополнению при многочисленных реализациях последующего времени. Кроме того, примерно с середины 1980-х годов термин «объектно-ориентированный» стал модным, в результате с ним произошло то же самое, что несколько раньше с термином «структурный» — его стали искусственно «прикреплять» к любым новым разработкам, чтобы обеспечить им привлекательность. Бьёрн Страуструп в 1988 году писал, что обоснование «объектной ориентированности» чего-либо, в большинстве случаев, сводится к ложному силлогизму: «X — это хорошо. Объектная ориентированность — это хорошо. Следовательно, X является объектно-ориентированным».
Концепции
1) Класс
Класс представляет собой группу похожих объектов. Это только логический компонент, а не физический объект.
2) Объект
Объект может быть определен как экземпляр класса, и в программе может быть несколько экземпляров класса. Объект содержит как данные, так и функцию, которая работает с данными.
3) Наследование
Наследование – это концепция OOPS, в которой один объект приобретает свойства и поведение родительского объекта. Это создает родительско-дочерние отношения между двумя классами. Он предлагает надежный и естественный механизм для организации и структуры любого программного обеспечения.
4) Полиморфизм
Полиморфизм относится к способности переменной, объекта или функции принимать несколько форм.
5) Абстракция
Абстракция является актом представления основных функций без включения деталей фона. Это метод создания нового типа данных, который подходит для конкретного приложения.
Концепции
6) Инкапсуляция
Инкапсуляция – это ООП метод упаковки данных и кода. В этой концепции OOPS переменные класса всегда скрыты от других классов. Доступ к нему возможен только с использованием методов их текущего класса.
7) Ассоциация
Ассоциация – это связь между двумя объектами. Это определяет разнообразие между объектами. В этой концепции ООП все объекты имеют отдельный жизненный цикл, и у них нет владельца.
8) Агрегация
В этой технике все объекты имеют отдельный жизненный цикл. Тем не менее, существует владение, так что дочерний объект не может принадлежать другому родительскому объекту.
9) Композиция
Композиция – это специализированная форма агрегации. Это также называется “смертью” отношений. Дочерние объекты не имеют своего жизненного цикла, поэтому при удалении родительского объекта все дочерние объекты также удаляются автоматически.
Инкапсуляция обеспечивается следующими средствами
Контроль доступа
Методы доступа
Свойства объекта
Современный объектно-ориентированный язык предлагает следующий обязательный набор синтаксических средств:
Объявление классов с полями и методами.
Механизм расширения класса (наследования) — порождение нового класса от существующего с автоматическим включением всех особенностей реализации класса-предка в состав класса-потомка. Большинство ООП-языков поддерживают только единичное наследование.
Полиморфные переменные и параметры функций (методов), позволяющие присваивать одной и той же переменной экземпляры различных классов.
Полиморфное поведение экземпляров классов за счёт использования виртуальных методов. В некоторых ООП-языках все методы классов являются виртуальными.
Основные идеи объектно-ориентированного подхода опираются на следующие положения
программа представляет собой модель некоторого реального процесса, части реального мира.
модель реального мира или его части может быть описана как совокупность взаимодействующих между собой объектов.
объект описывается набором параметров, значения которых определяют состояние объекта, и набором операций (действий), которые может выполнять объект.