Основные принципы объектно-ориентированного программирования
История возникновения и развития объектно-ориентированного программирования. Его основные задачи при создании сложных программных систем. Сущность классов в ООП, их классификация. Понятие конструкторов и деструкторов, наследования и полиморфизма.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 25.04.2013 |
Размер файла | 22,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Курсовая работа
по дисциплине «Информатика»
Введение
Объектно-ориентированное программирование (ООП) стало чрезвычайно популярно в 90-х. Появилось несчетное количество книг и специальных выпусков академических (и не только) журналов, посвященных этому предмету. Студенты стремятся к записи «компетентен в объектно-ориентированном программировании» в своих характеристиках. Чтобы оценить эту безумную активность, отметим, что объектно-ориентированное программирование приветствуется с большим энтузиазмом, чем тот, который мы видели ранее при провозглашении таких революционных идей, как «структурное программирование» или «экспертные системы».
Когда программисты спрашивают друг друга: «Чем же, в конце концов, является объектно-ориентированное программирование?», ответ чаще всего подчеркивает синтаксические свойства таких языков, как C++ или Object Pascal. Тем самым обсуждение обычно переходит на такие предметы, как классы и наследование, пересылка сообщений, виртуальные и статические методы. Но при этом опускают наиболее важный момент в объектно-ориентированном программировании, который не имеет ничего общего с вопросами синтаксиса.
Моя цель в данной работе состоит в том, чтобы исследовать и объяснить основные принципы объектно-ориентированного программирования, а также проиллюстрировать следующие утверждения.
ООП -- это революционная идея, совершенно непохожая на что-либо выдвигавшееся в программировании.
ООП -- это эволюционный шаг, естественным образом вытекающий из предшествующей истории.
Глава 1. Объектно-ориентированное программирование
1.1 Почему Объектно-ориентированное программирование (ООП) так популярно?
Я перечислю некоторые (на мой взгляд -- самые главные) причины огромной популярности объектно-ориентированного программирования в последнее десятилетие:
Надежда, что ООП может просто и быстро привести к росту продуктивности и улучшению надежности программ, помогая тем самым разрешить кризис в программном обеспечении;
Желание перейти от существующих языков программирования к новой технологии;
Вдохновляющее сходство с идеями, родившимися в других областях.
Объектно-ориентированное программирование является лишь последним звеном в длинной цепи решений, которые были предложены для разрешения «кризиса программного обеспечения». Положа руку на сердце: кризис программного обеспечения просто означает, что наше воображение и те задачи, которые мы хотим решить с помощью компьютеров, почти всегда опережают наши возможности.
Объектно-ориентированное программирование действительно помогает при создании сложных программных систем. Программирование по-прежнему является одной из наиболее трудных задач, взваливаемых на себя человеком. Чтобы стать профессионалом в программировании, необходимы талант, способность к творчеству, интеллект, знания, логика, умение строить и использовать абстракции и, самое главное, опыт -- даже в том случае, когда используются лучшие средства разработки.
Объектно-ориентированное программирование является новым пониманием того, что собственно называется вычислениями, а также того, как мы можем структурировать информацию внутри компьютера.
Чтобы стать профессионалом в технике ООП, требуется полная переоценка привычных методов разработки программ.
1.2 Резюме
Объектно-ориентированное программирование -- это не просто несколько новых свойств, добавленных в уже существующие языки. Скорее -- это новый шаг в осмыслении процессов декомпозиции задач и разработки программного обеспечения.
ООП рассматривает программы как совокупность свободно (гибко) связанных между собой агентов, называемых объектами. Каждый из них отвечает за конкретные задачи. Вычисление осуществляется посредством взаимодействия объектов. Следовательно, в определенном смысле программирование -- это ни много, ни мало, как моделирование мира.
Объект получается в результате инкапсуляции состояния (данных) и поведения (операций). Тем самым объект во многих отношениях аналогичен модулю или абстрактному типу данных. Поведение объекта диктуется его классом. Каждый объект является экземпляром некоторого класса. Все экземпляры одного класса будут вести себя одинаковым образом (то есть вызывать те же методы) в ответ на одинаковые запросы.
Объект проявляет свое поведение путем вызова метода в ответ на сообщение. Интерпретация сообщения (то есть конкретный используемый метод) зависит от объекта и может быть различной для различных классов объектов.
Объекты и классы расширяют понятие абстрактного типа данных путем введения наследования. Классы могут быть организованы в виде иерархического дерева наследования.
Данные и поведение, связанные с классами, которые расположены выше в иерархическом дереве, доступны для нижележащих классов. Происходит наследование поведения от родительских классов.
С помощью уменьшения взаимозависимости между компонентами программного обеспечения ООП позволяет разрабатывать системы, пригодные для многократного использования. Такие компоненты могут быть созданы и отлажены как независимые программные единицы, в изоляции от других частей прикладной программы.
1.3 Объект
Развитие идей структурного и событийного программирования существенно подняло производительность труда программистов и позволило в разумные сроки (несколько месяцев) создавать приложения объемом в сотни тысяч строк. Однако такой объем уже приблизился к пределу возможностей человека, и потребовались новые технологии разработки программ.
В начале 80-х годов в программировании возникло новое направление, основанное на понятии объекта. До того времени основные ограничения на возможность создания больших систем накладывала разобщенность в программе данных и методов их обработки.
Реальные объекты окружающего мира обладают тремя базовыми характеристиками: они имеют набор свойств, способны разными методами изменять эти свойства и реагировать на события, возникающие как в окружающем мире, так и внутри самого объекта. Именно в таком виде в языках программирования и реализовано понятие объекта как совокупности свойств (структур данных, характерных для этого объекта), методов их обработки (подпрограмм изменения свойств) и событий, на которые данный объект может реагировать, и которые приводят, как правило, к изменению свойств объекта.
Появление возможности создания объектов в программах качественно повлияло на производительность труда программистов. Максимальный объем приложений, которые стали доступны для создания группой программистов из 10 человек, за несколько лет увеличился до миллионов строк кода, при этом одновременно удалось добиться высокой надежности программ и, что немаловажно, повторно использовать ранее созданные объекты в других задачах.
1.4 Класс
Объекты могут иметь идентичную структуру и отличаться только значениями свойств. В таких случаях в программе создается новый тип, основанный на единой структуре объекта (по аналогии с тем, как создаются новые типы для структур данных). Он называется классом, а каждый конкретный объект, имеющий структуру этого класса, называется экземпляром класса.
Разновидности классов
Классы в объектно-ориентированном программировании имеют несколько различных форм и используются для разных целей. Следующие категории охватывают большую часть классов:
Управление данными;
Источники данных или посредники в передаче данных;
Классы для просмотра данных;
Вспомогательные, или упрощающие проектирование, классы.
Этот список не является исчерпывающим, однако он вполне подходит для учебных целей. Большинство объектно-ориентированных приложений включают как классы вышеперечисленных категорий, так и другие. Если оказывается, что класс «разрывается» между двумя категориями, то зачастую его можно разбить на два класса.
Классы-администраторы данных Data Managers, часто получающие имена Data или State, -- это классы, основной обязанностью которых является поддержка данных или информации о состоянии чего-либо. Например, для абстрактной модели игры в карты основная задача класса Card состоит в том, чтобы хранить масть и ранг (достоинство) карты.
Классы-администраторы данных обычно являются фундаментальными строительными блоками проекта, а их прототипами в спецификации проекта являются существительные.
Источники данных Data Sources -- это классы, которые генерируют данные (например, случайные числа). Посредники при передаче данных Data Sinks, естественно, служат для приема и дальнейшей передачи данных (например, запись в файл). В отличие от администраторов данных, источники и посредники не хранят внутри себя данные в течение неопределенного времени, но генерируют их по запросу (источники данных) или обрабатывают их при вызове (посредники данных).
Классы для просмотра данных View и Observer также незаменимы практически в любом приложении. Все программы, так или иначе, осуществляют вывод информации (как правило, на экран). Соответствующий программный код нередко является сложным, часто модифицируется и в значительной степени не зависит от выводимых данных. Поэтому хорошим тоном в программировании считается изоляция внутренних данных от методов, осуществляющих вывод информации.
Полезно отделять собственно объект (называемый часто моделью) от его изображения (визуального представления). Благодаря этому принципу системы, обеспечивающие графический вывод информации, в значительной степени могут быть упрощены. В идеальном случае модель не требует и не содержит информации о своем визуальном представлении. Это упрощает многократное использование кода, поскольку одна и та же модель может применяться во многих приложениях.
Модель зачастую имеет более одного визуального представления. Например, финансовая информация может быть представлена в виде гистограмм, круговых диаграмм, таблиц или рисунков. При этом сама информация остается неизменной.
К вспомогательным классам Facilitator и Helper разумно отнести те классы, которые не содержат полезной информации, но облегчают выполнение сложных заданий. Например, при отображении игральной карты мы используем вспомогательный класс, рисующий линии и текст на устройстве вывода. Другой служебный класс может, например, обслуживать связный список карт (колоду).
Описание нового класса
Описание нового класса похоже на описание новой структуры данных, только к полям (свойствам) добавляются методы -- подпрограммы.
В Си++ и Паскале для описания класса используется ключевое слово class. Паскаль:
class TMyClass Iteml: integer; Item2: string;
function GetSum(n: integer): integer; procedure Initialize; end; Си++:
class TMyClass
{
int Iteml;
int Item2;
int GetSum(int n);
void Initialize();
При определении подпрограмм, принадлежащих конкретному классу, его методов, в заголовке подпрограммы перед ее названием явно указывается, к какому классу она принадлежит. Название класса от названия метода отделяют специальные символы (точка в Паскале или два двоеточия в Си++).
Паскаль:
procedure TMyClass.Initialize; begin
Iteml := 1; Item2 := «»; end; Си++:
void TMyClass::Initialize()
{
Iteml = 1;
Item2 = 0;
Класс -- это тип данных, такой же, как любой другой базовый или сложный тип. На его основе можно описывать конкретные объекты (экземпляры классов).
Паскаль:
var Cl, C2: TMyClass; Си++:
TMyClass Cl, C2;
Доступ к свойствам объектов и к их методам осуществляется так же, как к полям записей, через точку:
Cl.Iteml := 5; С2.Initialize; х := Cl.GetSum(21);
Объектно-ориентированное программирование базируется на трех ключевых концепциях -- инкапсуляции, наследовании и полиморфизме. Объединение данных с методами в одном типе (классе) называется инкапсуляцией. Помимо объединения, инкапсуляция позволяет ограничивать доступ к данным объектов и реализации методов классов. В результате у программистов появляется возможность использования готовых классов в своих приложениях на основе только описаний этих классов.
1.5 Конструкторы и деструктор
Конструкторы
Есть необходимость инициализировать объекты класса в момент создания (т.е. задавать начальное состояние).
Для этого служат специальные функции-члены класса, которые называют конструкторами. Имя функции конструктора совпадает с именем класса. Конструкторы не возвращают значений. Конструкторов в классе может быть несколько, они отличаются списками параметров. Возможность создать несколько одноименных функций класса (методов) - это проявление полиморфизма ООП.
Примеры конструкторов:
class TDate{ // Класс для работы с датой
...
public:
// Конструкторы, только прототипы, реализации в другом месте
TDate(int dd, int mm, int yy); //
TDate(int); // порядковый номер дня от Р.Х.
TDate(char*); // строка "dd.mm.yy"
TDate(); // текущая дата по компьютерным часам
...
};
...
// Создание и инициализация объектов через вызов конструкторов
TDate today(22, 11, 2002);
TDate April1("01.04.2001");
TDate now();
В конструкторах, как и в обычных функциях, возможно использование значений по умолчанию:
class TDate{
...
public:
TDate(int d=0,int m=0,int y=0); // по умолчанию все значения 0
...
}
...
TDate::TDate(int d,int m,int y){
...
day=d?d:today.day; // если d==0, то d=today.day
};
//?TDate d=today; // возможна инициализация объекта посредством присваивания
Деструктор
Специализированная функция (деструктор) - вызывается по окончании работы объекта. Обычно выполняет завершающие действия: закрытие файла, восстановление состояния программы (экрана), освобождение памяти.
Имя функции-деструктора совпадает с именем класса с добавлением знака “ ~” “тильда”. Деструкторы не возвращают значений. Деструктор вызывается автоматически при выходе объекта из зоны видимости. Возможен явный вызов деструктора для динамически создаваемых объектов через операцию delete.
Пример деструктора:
class X{
char* S;
public:
X(int);
~X();
};
X::X(int N){ // Конструктор
S=new char[N]; // Динамическое выделение памяти
}
X::~X(){ // Деструктор
delete S; // Освобождение динамически выделенной памяти
}
X Obj1(256);
X* pObj2=new X(125);// динамическое выделение памяти под объект типа X
delete pObj2; // явный вызов деструктора
Итоговые замечания по конструкторам и деструкторам:
Если у класса есть конструктор, он вызывается каждый раз при создании объекта.
Если у класса есть деструктор, он вызывается, когда объект уничтожается.
Конструкторов может быть много, деструктор всегда один.
1.6 Объекты: сообщения, наследование и полиморфизм
Объектно-ориентированное программирование добавляет несколько новых важных идей к концепции абстрактных типов данных. Главная из них -- пересылка сообщений. Действие инициируется по запросу, обращенному к конкретному объекту, а не через вызов функции. В значительной степени это просто смещение ударения: традиционная точка зрения делает основной упор на операции, в то время как ООП на первое место ставит собственно значение. Вызываете ли вы подпрограмму push со стеком и значением в качестве аргументов, или же вы просите объект stack поместить нужное значение к нему внутрь? Если бы это было все, что имеется в объектно-ориентированном программировании, эта техника не рассматривалась бы как принципиальное нововведение.
Но к пересылке сообщений добавляются мощные механизмы переопределения имен и совместного (многократного) использования программного кода.
Наконец, объектно-ориентированное программирование добавляет механизмы наследования и полиморфизма.
Наследование позволяет различным типам данных совместно использовать один и тот же код, приводя к уменьшению его размера и повышению функциональности.
Полиморфизм перекраивает этот общий код так, чтобы удовлетворить конкретным особенностям отдельных типов данных.
Упор на независимость индивидуальных компонент позволяет использовать процесс пошаговой сборки, при которой отдельные блоки программного обеспечения разрабатываются, программируются и отлаживаются до того, как они объединяются в большую систему.
1.7 Принципы, составляющие суть ООП.
Рассмотрим три:
Инкапсуляция (Encapsulation - сокрытие, герметизация внутри) - объединение данных и кода + защита от внешнего вмешательства и неверного использования. Реализация класса может быть скрыта в защищенной области (private, protected), доступ к которой осуществляется через интерфейсные поля/функции публичной (public) области.
Наследование (Inheritance) - создание нового класса как потомка уже существующего добавлением новых полей и методов, при этом возможно перекрытие (переопределение) полей и методов класса-предка. Создается иерархия классов.
Полиморфизм (Polymorphism) - множественность форм - это свойство, которое позволяет одно и тоже имя использовать для решения технически разных задач. Таким образом, реализован, например, механизм перекрытия функций.
1.8 Визуальное программирование
Технологии объектного, событийного и структурного программирования сегодня объединены в IMD-системах, которые содержат множество готовых классов, представленных в виде визуальных компонентов, которые добавляются в программу одним щелчком мыши.
Программисту надо только спроектировать внешний вид окон своего приложения и определить обработку основных событий, -- какие операторы будут выполняться при нажатии на кнопки, при выборе пунктов меню или щелчках мышкой.
Весь вспомогательный исходный код среда сгенерирует сама, позволяя программисту полностью сосредоточиться только на реализации алгоритма.
ориентированный программирование деструктор полиморфизм
2. Практикум
Используя ППП на ПК, необходимо построить таблицы по приведенным ниже формам (рис. 1,2,3). Для получения значений итоговых граф в таблицах рис.1,2 нужно использовать расчетную формулу: гр.5 = гр.3 - гр.4. Заполнить таблицу рис.3 числовыми данными, выполнить консолидацию по расположению. Ввести текущее значение между таблицей и её названием. По данным таблицы рис.3 по графам 2,3,5 построить гистограмму с заголовком, названием осей координат и легендой.
Свод лицевых счетов пенсионеров за январь |
|||||
№ лицевого счета |
ФИО |
Сумма Причитающейся пенсии, руб. |
Удержания по исполнит. документам, руб. |
Выплачено пенсионеру, руб. |
|
1 |
2 |
3 |
4 |
5 |
|
И1212 |
Иванов А.А. |
900 |
125 |
||
А1245 |
Антонов С.С. |
1200 |
200 |
||
П1268 |
Петров И.И. |
560 |
25 |
||
Д1378 |
Дубровицкий И.С. |
456 |
0 |
||
С1577 |
Сидорчук А.В. |
304 |
100 |
Рис. 1
Свод лицевых счетов пенсионеров за февраль |
|||||
№ лицевого счета |
ФИО |
Сумма Причитающейся пенсии, руб. |
Удержания по исполнит. документам, руб. |
Выплачено пенсионеру, руб. |
|
1 |
2 |
3 |
4 |
5 |
|
И1212 |
Иванов А.А. |
950 |
130 |
||
А1245 |
Антонов С.С. |
1250 |
210 |
||
П1268 |
Петров И.И. |
610 |
30 |
||
Д1378 |
Дубровицкий И.С. |
506 |
5 |
||
С1577 |
Сидорчук А.В. |
374 |
100 |
Рис. 2
Свод лицевых счетов пенсионеров за январь и февраль |
|||||
№ лицевого счета |
ФИО |
Сумма Причитающейся пенсии, руб. |
Удержания по исполнит. документам, руб. |
Выплачено пенсионеру, руб. |
|
1 |
2 |
3 |
4 |
5 |
|
И1212 |
Иванов А.А. |
||||
А1245 |
Антонов С.С. |
||||
П1268 |
Петров И.И. |
||||
Д1378 |
Дубровицкий И.С. |
||||
С1577 |
Сидорчук А.В. |
Рис. 3
Решение
Свод лицевых счетов пенсионеров за январь |
|||||
№ лицевого счета |
ФИО |
Сумма Причитающейся пенсии, руб. |
Удержания по исполнит. документам, руб. |
Выплачено пенсионеру, руб. |
|
1 |
2 |
3 |
4 |
5 |
|
И1212 |
Иванов А.А. |
900 |
125 |
775 |
|
А1245 |
Антонов С.С. |
1200 |
200 |
1000 |
|
П1268 |
Петров И.И. |
560 |
25 |
535 |
|
Д1378 |
Дубровицкий И.С. |
456 |
0 |
456 |
|
С1577 |
Сидорчук А.В. |
304 |
100 |
204 |
Рис. 1
Свод лицевых счетов пенсионеров за февраль |
|||||
№ лицевого счета |
ФИО |
Сумма Причитающейся пенсии, руб. |
Удержания по исполнит. документам, руб. |
Выплачено пенсионеру, руб. |
|
1 |
2 |
3 |
4 |
5 |
|
И1212 |
Иванов А.А. |
950 |
130 |
820 |
|
А1245 |
Антонов С.С. |
1250 |
210 |
1040 |
|
П1268 |
Петров И.И. |
610 |
30 |
580 |
|
Д1378 |
Дубровицкий И.С. |
506 |
5 |
501 |
|
С1577 |
Сидорчук А.В. |
374 |
100 |
274 |
Рис. 2
Свод лицевых счетов пенсионеров за январь и февраль |
|||||
№ лицевого счета |
ФИО |
Сумма Причитающейся пенсии, руб. |
Удержания по исполнит. документам, руб. |
Выплачено пенсионеру, руб. |
|
1 |
2 |
3 |
4 |
5 |
|
И1212 |
Иванов А.А. |
1850 |
255 |
1595 |
|
А1245 |
Антонов С.С. |
2450 |
410 |
2040 |
|
П1268 |
Петров И.И. |
1170 |
55 |
1115 |
|
Д1378 |
Дубровицкий И.С. |
962 |
5 |
957 |
|
С1577 |
Сидорчук А.В. |
678 |
200 |
478 |
Рис. 3
Формулы, по которым заполнялись столбцы в таблицах, находятся в приложении. После того как таблица рис.3 была заполнена числовыми данными, выделяем столбцы 2,3,5 и строим гистограмму (смотреть следующую страницу).
Заключение
Определенно истинно, что группы индивидуумов с общими интересами стремятся разработать свой собственный специализированный словарь и, будучи однажды созданным, он имеет тенденцию направлять мысли своих творцов по пути, который не является естественным для людей за пределами группы. Именно такова ситуация с ООП. Хотя объектно-ориентированные идеи могут, при надлежащей дисциплине, быть использованы и без объектно-ориентированных языков, использование их терминов помогает направить ум программиста по пути, который не очевиден без терминологии ООП.
Работа на объектно-ориентированном языке (то есть на языке, который поддерживает наследование, пересылку сообщений и классы) не является ни необходимым, ни достаточным условием для того, чтобы заниматься объектно-ориентированным программированием. Поэтому наиболее важный аспект в ООП -- техника проектирования, основанная на выделении и распределении обязанностей. Она была названа проектированием на основе обязанностей или проектированием на основе ответственности.
Литература
1. Объектно-ориентированное программирование в действии/Тимоти Бад 2007
2. Информатика базовый курс/Учебник для вузов/2-е издание Симонович С. В. 2008
3. Информатика и Информационные технологии/Учебник для вузов/Лесничая И. Г. 2008
Приложение А
Свод лицевых счетов пенсионеров за январь |
|||||
№ лицевого счета |
ФИО |
Сумма Причитающейся пенсии, руб. |
Удержания по исполнит. документам, руб. |
Выплачено пенсионеру, руб. |
|
1 |
2 |
3 |
4 |
5 |
|
И1212 |
Иванов А.А. |
900 |
125 |
=$D$46-$E$46 |
|
А1245 |
Антонов С.С. |
1200 |
200 |
=$D$47-$E$47 |
|
П1268 |
Петров И.И. |
560 |
25 |
=$D$48-$E$48 |
|
Д1378 |
Дубровицкий И.С. |
456 |
0 |
=$D$49-$E$49 |
|
С1577 |
Сидорчук А.В. |
304 |
100 |
=$D$50-$E$50 |
Рис. 1
Свод лицевых счетов пенсионеров за февраль |
|||||
№ лицевого счета |
ФИО |
Сумма Причитающейся пенсии, руб. |
Удержания по исполнит. документам, руб. |
Выплачено пенсионеру, руб. |
|
1 |
2 |
3 |
4 |
5 |
|
И1212 |
Иванов А.А. |
950 |
130 |
=$D$56-$E$56 |
|
А1245 |
Антонов С.С. |
1250 |
210 |
=$D$57-$E$57 |
|
П1268 |
Петров И.И. |
610 |
30 |
=$D$58-$E$58 |
|
Д1378 |
Дубровицкий И.С. |
506 |
5 |
=$D$59-$E$59 |
|
С1577 |
Сидорчук А.В. |
374 |
100 |
=$D$60-$E$60 |
Рис. 2
Свод лицевых счетов пенсионеров за январь и февраль |
|||||
№ лицевого счета |
ФИО |
Сумма Причитающейся пенсии, руб. |
Удержания по исполнит. документам, руб. |
Выплачено пенсионеру, руб. |
|
1 |
2 |
3 |
4 |
5 |
|
И1212 |
Иванов А.А. |
=$D$56+$D$46 |
=$E$46+$E$56 |
=$D$65-$E$65 |
|
А1245 |
Антонов С.С. |
=$D$47+$D$57 |
=$E$47+$E$57 |
=$D$66-$E$66 |
|
П1268 |
Петров И.И. |
=$D$48+$D$58 |
=$E$48+$E$58 |
=$D$67-$E$67 |
|
Д1378 |
Дубровицкий И.С. |
=$D$49+$D$59 |
=$E$49+$E$59 |
=$D$68-$E$68 |
|
С1577 |
Сидорчук А.В. |
=$D$50+$D$60 |
=$E$50+$E$60 |
=$D$69-$E$69 |
Рис. 3
Размещено на Allbest.ru
...Подобные документы
Использование объектно-ориентированного программирования - хорошее решение при разработке крупных программных проектов. Объект и класс как основа объектно-ориентированного языка. Понятие объектно-ориентированных языков. Языки и программное окружение.
контрольная работа [60,1 K], добавлен 17.01.2011Анализ объектно-ориентированного программирования, имитирующего способы выполнения предметов. Основные принципы объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм. Понятие классов, полей, методов, сообщений, событий.
контрольная работа [51,7 K], добавлен 22.01.2013Причины возникновения объектно-ориентированного программирования. Графическое представление классов; их отличия от других абстрактных типов данных. Типы абстракции, используемые при построении объекта. Сущность инкапсуляции, наследования и полиморфизма.
контрольная работа [222,1 K], добавлен 04.06.2014Понятие объектно-ориентированного программирования, характеристика используемых языков. Практическая разработка средств объектно-ориентированного программирования в задачах защиты информации: программная реализация на языке С++, а также Turbo Pascal.
курсовая работа [275,9 K], добавлен 22.12.2011Применение объектно-ориентированного программирования для написания нескольких модулей программы. Вычисление алгебраического уравнения методом половинного деления. Применение метода Эйлера в теории численных методов общих дифференциальных уравнений.
курсовая работа [398,1 K], добавлен 26.02.2015Цели объектно-ориентированного программирования, абстрактные классы и адреса базовых классов, множественное и виртуальное наследование. Инициализация элементов производного класса, программный вызов конструкторов базового и производного классов.
реферат [21,8 K], добавлен 31.10.2011Исследование принципов объектно-ориентированного программирования на базе языка программирования С++. Разработка программного комплекса для ведения учёта памятников города. Описание процессов сортировки, поиска, формирования статистики по памятникам.
курсовая работа [782,4 K], добавлен 26.05.2014Общая характеристика объектно-ориентированного подхода в программировании, его основные свойства и принципы. Разработка программы для автоматизация деятельности кафе на основе объектно-ориентированного подхода, проектирования и реализации схемы данных.
курсовая работа [1,2 M], добавлен 22.01.2012Описание предметной области. Контроль и методы доступа. Работа с графикой в С++ Builder. Программирование игры "Воздушный бой" с использованием основных принципов объектно-ориентированного программирования. Принципы работы конструкторов и деструкторов.
курсовая работа [901,0 K], добавлен 31.05.2015Основные операции с АВЛ-деревьями, добавление и удаление элемента из сбалансированного дерева. Эффективность сортировки вставкой в АВЛ–дерево и итераторы. Алгоритм реализации АВЛ–деревьев через классы объектно–ориентированного программирования.
курсовая работа [281,1 K], добавлен 29.11.2010Анализ методов объектно-ориентированного программирования на примере численных. Детальная характеристика модулей и связь их в одну общую программу. Принципы интегрирования по общей формуле трапеции и решение дифференциального уравнения методом Эйлера.
курсовая работа [511,6 K], добавлен 25.03.2015Появление первых вычислительных машин и возникновение "стихийного" программирования. Структурный подход к декомпозиции сложных систем. Развитие модульного и объектно-ориентированного программирования. Особенности компонентного подхода и CASE-технологий.
презентация [1,5 M], добавлен 14.10.2013Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.
курсовая работа [2,6 M], добавлен 17.11.2014Разработка приложения "Калькулятор с переходом в строковый калькулятор" с применением объектно-ориентированного программирования. Концепция и понятия объектно-ориентированного программирования. Язык программирования Java. Листинг программы "Калькулятор".
курсовая работа [966,9 K], добавлен 11.02.2016Концепция объектно-ориентированного программирования. Объектно-ориентированные языки программирования: Smalltalk, Object Pascal, CLOS и C++. Понятие "Объект" и "Класс". Управление доступом к элементам данных классов. Определение функций-членов класса.
реферат [24,5 K], добавлен 28.10.2011Изучение принципов объектно-ориентированного программирования, в котором основными концепциями являются понятия классов и объектов. Свойства этого вида программирования: инкапсуляция, полиморфизм, наследование. Описание класса. Конструкторы и деструкторы.
презентация [74,8 K], добавлен 14.10.2013Сущность и история развития объектно-ориентированного программирования. Наследование как важнейшее свойство объекта. Экземпляры объектных типов. Поля объектов, методы, полиморфизм. Производительность объектных программ. Пример программного продукта.
курсовая работа [33,3 K], добавлен 25.03.2012Основные элементы объектной модели. Сущность и преимущества объектно-ориентированного подхода, понятие объекта и класса. Унифицированный язык моделирования UML. Диаграммы классов и взаимодействия: назначение, построение и примеры использования.
реферат [273,2 K], добавлен 09.06.2009Основные сведения о языках программирования и их состав. Программа для компьютера. Использование компилятора и операторы. Языки программирования высокого уровня. Концепции объектно-ориентированного программирования. Языки искусственного интеллекта.
презентация [6,3 M], добавлен 14.08.2013Приемы и правила объектно-ориентированного программирования с использованием языка С++. Общие принципы разработки объектно-ориентированных программ. Основные конструкции языка С++. Разработка различных программ для Windows с использованием WIN32 API.
учебное пособие [1,6 M], добавлен 28.12.2013