Объектно-ориентированное программирование
Прототипом объектно-ориентированного программирования послужил ряд средств, входящих в состав языка SIMULA-67. Но в самостоятельный стиль оно оформилось с появлением языка SMALLTALK, разработанного А. Кеем в 1972 году и первоначально предназначенного для реализации функций машинной графики. В основе объектно-ориентированного стиля программирования лежит понятие объекта, а суть его выражается формулой: «объект = данные + процедуры». Каждый объект интегрирует в себе некоторую структуру данных и доступные только ему процедуры обработки этих данных, называемые методами. Объединение данных и процедур в одном объекте называется инкапсуляцией и присуще объектно-ориентированному программированию. Для описания объектов служат классы. Класс определяет свойства и методы объекта, принадлежащего этому классу. Соответственно, любой объект можно определить как экземпляр класса. Программирование рассматриваемого стиля заключается в выборе имеющихся или создании новых объектов и организации взаимодействия между ними. При создании новых объектов свойства объектов могут добавляться или наследоваться от объектов-предков. В процессе работы с объектами допускается полиморфизм — возможность использования методов с одинаковыми именами для обработки данных разных типов. К наиболее современным объектно-ориентированным языкам программирования относятся C++ и Java. Язык C++ был разработан в начале 80-х годов Б. Страуструпом, сотрудником лаборатории Bell корпорации AT&T. Им была создана компактная компилирующая система, в которой за основу был взят язык С, дополненный элементами языков BCPL, Simula-67 и Algol-68. К июлю 1983 года появился язык С с классами, а чуть позднее — C++. К 1990 году была выпущена третья версия языка C++, принятая комитетом ANSI в качестве исходного материала для его стандартизации.
В 1990 году сотрудник корпорации Sun Д. Гослинг на основе расширения C++ разработал объектно-ориентированный язык Oak, основным достоинством которого было обеспечение сетевого взаимодействия различных по типу устройств. Новая интегрируемая в Internet версия языка, получила название Java. Первый браузер, который поддерживал язык Java, разработан программистом корпорации Sun П. Нафтоном и получил название HotJava. С января 1995 года Java получает распространение в Internet. Согласно официальному определению авторов, Java является простым объектно-ориентированным и архитектурно-нейтральным языком интерпретирующего типа, обеспечивающим надежность, безопасность и переносимость, обладающим высокой производительностью в сочетании с многопоточностью и динамичностью. Принципиальной разницей между Java и C++ является то, что первый из них является интерпретируемым, а второй – компилируемым. Синтаксис языков практически полностью совпадает. С точки зрения возможностей собственно объектно-ориентированных средств язык Java обладает рядом преимуществ перед языком C++. Так, язык Java демонстрирует более гибкую и мощную систему инкапсуляции информации. Механизм наследования, реализованный в Java, обязывает к более строгому подходу к программированию, что улучшает надежность и понимаемость кода. Язык же C++ обладает сложной, неадекватной и трудной для понимания системой наследования. Возможности динамического связывания объектов одинаково хорошо представлены в обоих языках, однако, синтаксическая избыточность C++ заставляет и здесь отдать предпочтение языку Java. В силу своей конструктивности идеи объектно-ориентированного программирования используются во многих универсальных процедурных языках. Так, например, в состав интегрированной системы программирования на языке PASCAL (корпорации Borland International) версии 5.5 входит специальная библиотека объектно-ориентированного программирования Turbo Vision.
В последнее время многие программы, в особенности объектно-ориентированные, реализуются как системы визуального программирования. Отличительной особенностью таких систем является мощная среда разработки программ из готовых «строительных блоков», позволяющая создать интерфейсную часть программного продукта в диалоговом режиме, практически без кодирования программных операций. К числу объектно-ориентированных систем визуального программирования относятся; Visual Basic, Delphi, C++Builder и Visual C++.
2. Основы алгоритмического языка С++ Пример готовой программы. «Чем объяснять,- сказал Додо,- лучше показать…» Алиса в Стране чудес Продемонстрируем пример простейшей программы на языке C++, которая запрашивает у пользователя два целочисленных значения переменных a и b, анализирует их и выводит наибольшее число. 01 #include "stdafx.h" 02 int main() 03 { 04 int a,b,max; 05 printf("a="); //приглашение ввести значение a 06 scanf("%d",&a); //ввод значения переменной а 07 printf("b="); //приглашение ввести значение b 08 scanf("%d",&b); //ввод значения переменной b 09 if(a>b) max=a; //если a>b то max=a 10 else max=b; //иначе max=b 11 printf("max=%d",max); //вывод максимального значения 12 return 0; //выход из функции main 13 } Номера, которые проставлены в начале каждой строки программы, не являются принадлежностью программы. Они введены только для упрощения ссылок на описание действия тех или иных строк. Строка 01 подключает (include – включить) к тексту программы, так называемые заголовочные (h от header – заголовок) файлы системы. В этих файлах описаны функции, их аргументы и типы этих аргументов. Используя эти описания, компилятор проверяет правильность вызова системных функций. В нашем случае программа использует функции ввода (scanf) и вывода (printf), описания которых находятся в заголовочном файле stdio.h. Названия заголовочных файлов зачастую образовываются от каких-либо аббревиатур английских слов, их полезно научиться понимать, а не запоминать. В нашем примере: используется модуль со стандартным именем StdAfx, состоящий из двух файлов: заголовка stdafx.h и реализации stdafx.cpp., создаваемый мастером AppWizard для каждого приложения. Этот модуль предназначен для создания так называемых прекомпилированных файлов (*.pch), которые повышают производительность компиляции. Заголовочный файл stdafx.h включается в каждый исходный файл проекта первым и содержит директивы include для подключения библиотек C++. Таким образом, каждый модуль проекта имеет возможность использовать подключенные библиотеки, при этом во время его компиляции не требуется выполнять обработку файлов заголовков, поэтому, он может быть скомпилирован быстрее.
Строка 02 содержит заголовок функции main. Функция с таким названием обязана присутствовать в каждой программе на языке C, C++. Именно с нее начинается выполнение программы, она – главная (именно так переводится служебное слово main). Предшествующее ей служебное слово int (от integer – целый) сообщает, что результатом работы функции main должно быть целое число. По возвращаемому функцией значению операционная система, запустившая программу main, может "сообразить", правильно или неправильно завершилась работа программы. По общепринятому соглашению нулевое значение, возвращаемое функцией main (строка 12), свидетельствует о нормальном завершении работы программы. Пустота в круглых скобках, указывает, что функция main не использует аргументы. Текст программы (тело функции) заключается в фигурные скобки (строки 03 и 13). В большинстве последующих строк присутствует пояснительный текст на русском языке, следующий после пары символов // – это комментарий, на содержание которого компилятор не обращает внимания. В строке 04 объявлены три переменные с именами a, b и max, которые могут принимать только целочисленные значения (тип – int). Строка 05 является первой строкой программы, которая производит некоторое действие – она выводит на дисплей сообщение, состоящее из двух символов (a=). Текст сообщения заключен в двойные кавычки. Строка 06 организует останов работы программы до тех пор, пока пользователь не наберет на клавиатуре какое-либо число и нажмет клавишу Enter. Поступившее значение будет интерпретировано, если оно целое, и помещено в переменную a. Точно таким же образом в строках 07 и 08 будет организован ввод значения числовой переменной b.
В строке 09 сравниваются (if – если) текущие значения переменных a и b. Если проверяемое условие выполнено, т.е. значение переменной a больше, то оно присваивается переменной max – выполняется действие, записанное после проверки условия. В противном случае (else – иначе) в переменную max заносится значение b. Строка 11 выводит на дисплей два сообщения – текстовое (max=) и числовое (значение переменной max). Последняя выполняемая строка с номером 12 возвращает управление операционной системе (return – вернуться) и выдает в качестве значения функции нулевой результат. Обратите внимание на следующие детали. Если программа обращается к каким-либо системным функциям, то в первых ее строках обязательно должно стоять указание о подключении соответствующих заголовочных файлов. Программа может содержать более чем одну функцию, но среди них обязательно должна присутствовать функция с именем main. Каждая строка программы, содержащая какое-либо объявление или выполняемое действие, оканчивается точкой с запятой. Тело функции обязательно заключается в фигурные скобки.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|