Файл: «Основные понятия объектно-ориентированного программирования» (Понятие об объектно-ориентированном программировании).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.03.2023

Просмотров: 127

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

В итоге можно сказать, что ООП – самая важная и гибкая парадигма современного программирования. Он особенно полезен при моделировании проблем реального мира и поэтому очень популярен.

Перечисленные преимущества ООП нашли широкое применение в следующих областях[10,11]:

  1. Симулирование и моделирование. Моделирование - это техника представления сущностей реального мира с помощью компьютерной программы.
  2. Проектирование пользовательского интерфейса. Другая популярная область применения ООП – разработка графических пользовательских интерфейсов. C ++ в основном используется для разработки пользовательских интерфейсов.
  3. Разработка компьютерных игр. ООП также используется для разработки компьютерных игр, таких как Diablo, Startcraft и Warcraft III. Эти игры предлагают среды виртуальной реальности, в которых множество объектов взаимодействуют друг с другом сложным образом, чтобы дать желаемый результат.
  4. Написание сценариев. В последние годы ООП также используется для разработки документов HTML, XHTML и XML для Интернета. Python, Ruby и Java являются языками сценариев, основанными на объектно-ориентированных принципах, которые используются для сценариев.
  5. Объектные базы данных. В наши дни концепции ООП также были внедрены в системы баз данных для разработки новой СУБД. Эти базы данных хранят данные непосредственно в виде объектов. Однако эти базы данных не так популярны, как традиционные СУБД.
  6. Некоторые другие области применения включают системы автоматизации делопроизводства, системы поддержки принятия решений, искусственный интеллект и экспертные системы, нейронные сети и параллельное программирование, а также системы автоматизированного проектирования.

Также отметим и недостатки объектно-ориентированного подхода. Существует несколько основных заблуждений, которые необходимо учитывать при рассмотрении использования объектно-ориентированного подхода [4]:

1. Объектно-ориентированная технология не является панацеей – объектно-ориентированная разработка лучше всего подходит для динамических интерактивных сред, о чем свидетельствует ее широкое распространение в системах CAD / CAM и инженерных системах проектирования.

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


2. Отсутствует четкий переход от проектирования к реализации.

3. Объектно-ориентированная разработка еще не полностью принята крупными поставщиками, хотя имеет вес на рынке.

ГЛАВА 2
ОСНОВНЫЕ ПОНЯТИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ С++

2.1 Базовая структура программы на С++

Программы представляют собой последовательность инструкций или утверждений. Эти операторы формируют структуру программы на C ++. Структура программы на C ++ разделена на различные разделы, а именно: заголовки, определения классов, определения функций-членов и основная функция.

Рис. 2.Составляющие программы на C ++

C ++ обеспечивает гибкость написания программы с определением класса или без него и его функций-членов. Простая программа на C ++ (без класса) включает комментарии, заголовки, пространство имен, main () и операторы ввода/вывода (рис. 3)[12,13].

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

Рис. 3. Структура программы на С ++ без классов

C ++ поддерживает два стиля комментариев: однострочный и многострочный. Однострочные комментарии используются для определения построчных описаний. Двойная косая черта (//) используется для представления однострочных комментариев. Чтобы понять концепцию однострочного комментария, рассмотрим его[13,14].

// Пример для демонстрации однострочного комментария. Он также может быть записан как

// Пример для демонстрации

// однострочного комментария

Многострочные комментарии используются для определения описания нескольких строк и представлены как / * * /. Рассмотрим следующий пример.

/ * Пример для демонстрации

многострочного комментария * /

Как правило, многострочные комментарии не используются в C ++, поскольку они требуют больше места в строке. Однако они полезны в операторах программы, где однострочные комментарии не могут быть использованы. Рассмотрим следующий пример[14].


for (int i = 0; i <10; // цикл выполняется 10 раз i ++)

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

for (int i = 0; i <10; / * цикл выполняется 10 раз * / i ++)

Как правило, программа включает в себя различные элементы программирования, такие как встроенные функции, классы, ключевые слова, константы, операторы и т. д., которые уже определены в стандартной библиотеке C ++. Чтобы использовать такие предопределенные элементы в программу должен быть включен соответствующий заголовок.Стандартные заголовки содержат такую информацию, как прототип, определение и тип возврата библиотечных функций, тип данных констант и т. д. В результате программистам не нужно явно объявлять (или определять) предопределенные элементы программирования[13,14].

Стандартные заголовки указываются в программе через директиву препроцессора #include. На рис.3использован заголовок iostream. Когда компилятор обрабатывает инструкцию # inc1ude <iostream>, он включает в себя содержимое iostream в программе. Это позволяет программисту использовать стандартные средства ввода, вывода и обработки ошибок, которые предоставляются только через стандартные потоки, определенные в <iostream>.

Эти стандартные потоки обрабатывают данные как поток символов, то есть данные считываются и отображаются в непрерывном потоке. К стандартным потокам, определенные в <iostream> относятся[15]:

  • cin: это стандартный поток ввода, который связан со стандартным устройством ввода (клавиатурой) и используется для получения данных пользователя.
  • cout: это стандартный поток вывода, который связан со стандартным устройством вывода (монитором) и используется для отображения вывода данных пользователя.
  • cerr: это стандартный поток ошибок, который связан со стандартным устройством вывода сообщений об ошибках (монитором) и используется для сообщения о них пользователю. Объект cerr не имеет буфера (области временного хранения) и, следовательно, немедленно сообщает об ошибках пользователям.
  • clog: это буферизованный поток ошибок, который связан со стандартным устройством вывода сообщений об ошибках (экран компьютера) и используется для сообщения о них пользователю. В отличие от cerr, clog сообщает об ошибках пользователю, только когда буфер заполнен.

В течение многих лет C ++ применял заголовки в стиле C, то есть расширение .h в заголовках. Однако в стандартной библиотеке C ++ появились заголовки нового стиля, включающие только имя заголовка. Следовательно, большинству компиляторов не требуется никаких расширений, хотя они поддерживают старое расширение .h. Некоторые из заголовков в стиле C и их эквиваленты на C ++ приведены на рис 4[12].


Рис.4. Соответствие заголовков в языкахС и С ++

Со времени своего создания C ++ претерпел множество изменений от Комитета по стандартам C ++. Одной из новых функций, добавленных к этому языку, является пространство имен.

Пространство имен позволяет группировать различные объекты, такие как классы, объекты, функции и различные токены C ++ и т. д., под одним именем[13,14].

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

Комитет по стандартам C ++ реорганизовал объекты стандартной библиотеки в пространство имен std. На рис.3оператор, использующий пространство имен std, информирует компилятор о включении всех сущностей, присутствующих в пространстве имен std. К сущностям пространства имен можно получить доступ следующими способами[14,15]:

  1. Указывая директиву using:

usingnamespacestd;

cout<<"Текст";

  1. Указав полное имя элемента:

std: :cout<<"Текст";

  1. Указав объявлениедирективы using:

usingstd:: cout;

cout<<"Текст";

Как только заголовок нового стиля включен, его содержимое включается в пространство имен std. Таким образом, все современные компиляторы C++ поддерживают данную запись:

#include<iostream>

usingnamespacestd;

Однако некоторые старые компиляторы могут не поддерживать эти операторы. В этом случае утверждения заменяются следующей записью#include<iostream.h>.

Main () – это функция, которая запускает выполнение программы на C++. Все операторы C ++, которые должны быть выполнены, написаны в main ()[12,14].

Компилятор выполняет все инструкции, написанные в открывающихся и закрывающихся фигурных скобках '{}', которые заключают тело main (). Как только все инструкции в main () выполнены, управление выходит из main (), завершая всю программу и возвращая значение операционной системе.

По умолчанию main () в C ++ возвращает значение int операционной системе. Следовательно, main () должен заканчиваться оператором return 0. Возвращаемое значение ноль указывает на успех, а ненулевое значение указывает на сбой или ошибку[14,15].

2.2 Базовая структура полной программы на C ++ с классами

Программа на C ++ может быть получена из базовой структуры. Общая структура программы C ++ с классами, которая также называется обзором, включает[11, 16]:


1. Раздел документации.

2. Директивы препроцессора или директивы компилятора.

2.1 Ссылки.

2.2 Область определения.

3. Областьобъявленияглобальных переменных.

4. Объявление класса.

5. Основная функция программы на C ++, называемая main ().

6. Начало программы –{ (левая скобка).

6.1 Объявление объекта.

6.2 Доступ к функциям-членам (с использованием оператора точки).

7. Конец основной программы – } (правая скобка).

Раздел «Документация» содержит заголовок и комментарии. Их назначение и описание приведены в подразделе 2.1.

Раздел директив препроцессора или директивы компилятора необязательный, но становится обязательным, если компилятор имеет подкаталоги INCLUDE и LIB.

Операторы компилятора бывают двух видов[12]:

  1. Операторы связи. Вданном разделе можно связать функции компилятора, такие как cout<<, cin>>, sqrt (), fmod (), sleep (), clrscr () и другие с помощью подкаталогаincludeс такими заголовочными файлами как iostream.h, conio.h, math.h, dos.h, string.h, ctype.h, process.h и т. д. Это становится очень полезным на этапе компиляции и компоновки. Общий синтаксис[11,15]:

#include<файл заголовка> или

#include "файл заголовка".

Рассмотрим пример:

#include <iostream.h>

#include <conio.h>

#include "dos.h"

В разделе определения вводятся переменные и их значения. Для этого используется оператор определения. Общий синтаксис: #define значение имени переменной. Рассмотрим пример:

#defineG 9.81

#defineA18

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

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

тип данных vl,v2,v3………. vn;

В качестве типов данных могут выступать: int, float, char, double и т. д. vl, v2, v3, .... vn – список глобальных переменных (v). Рассмотрим пример некоторых допустимых операторов глобального объявления[14,15]:

Int a, b, c;

float x,y,z;

charch, name[10], address[20];

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