Здавалка
Главная | Обратная связь

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



И, снова, здравствуйте!!! Мы очень надеемся, что вы успешно сдали экзамен по программированию на языке С и теперь можете преходить к следующему этапу обучения. А, именно, программированию на языке С++. Прежде всего, напомним некоторые истоорические факты, касающиеся этих двух языков программирования. Эту информацию вы уже получали в первом уроке, но всё же:

В 1972 году 31-летний специалист по системному программированию из фирмы Bell Labs Деннис Ритчи разработал язык программирования Си. Первое описание языка было дано в книге Б. Кернигана и Д. Ритчи, которая была переведена на русский язык. Долгое время это описание являлось стандартом, однако ряд моментов допускали неоднозначное толкование, которое породило множество трактовок языка С. Для исправления этой ситуации при Американском национальном институте стандартов (АNSI) был образован комитет по стандартизации языка С. В 1983 году был утвержден стандарт языка С, получивший название ANSI С. В начале 80-х годов в той же Веll Lаbоratory Бьерном Страуструпом в результате дополнения и расширения языка С был создан новый по сути язык, получивший название "С с классами". В 1983 году это название было заменено на С++.

Вспомнили? Однако история создания языков - это не единственное различие между ними :)))). Дело всё в том, что существует два основных подхода к программированию: процедурный и объектно-ориентированный. Рассмотрим их определения:

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

Объектно-ориентированное программирование - подход, при котором функции и переменные, относящиеся к какому-то конкретному объекту объединены в коде определенным образом и тесно связаны между собой. (Язык С++).

Итак, с сегодняшнего дня мы будем заниматься объектно-ориентированным программированием. Будем называть его сокращенно ООП.

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

"Кит первый" - инкапсуляция.(Encapsulation)

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

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

Попробуем сформулировать определение объекта:

Объект - это некоторая уникальная единица имеющая свои переменные и функции, эти переменные обрабатывающие".

Для создания объекта необходимо определить некий тип данных, который будет использоваться в программе и каждая переменная этого типа (экземпляр) ,будет представлять собой объект. В принципе, как объект можно представить тип данных - структура. Надеемся, что вы еще помните, что это такое. В структуре все данные, касающиеся одного объекта собраны воедино под одним именем, являющим собой пользовательский тип данных. В С++ таким типом данных будет КЛАСС.

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

В программировании свойства так и называются - свойства. А, способы извлечения содержимого, применимые к этому ящику - это методы. C помощью свойств мы работаем с внутренними данными, читаем и устанавливаем значения, а методы - это те действия, которые может выполнять сам объект, то есть в нашем примере, мы нажимаем кнопку на ящике, которая "вызывает метод" - открыть ящик и ящик открывается самостоятельно. Другими словами, метод, это функция, принадлежащая объекту и выполняемая самим объектом.

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

"Кит второй" - наследование.(Inheritance)

Для начала дадим определение данному термину:







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.