Объектно ориентированное программирование

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

К концепции объектно-ориентированного программирования не относится

a) параллелизм

b) полиморфизм

c) наследование

d) инкапсуляция

 

Базовыми понятиями объектно-ориентированного программирования являются

а) объект

б) класс

в) структура

г) функция

 

3. Объект связан с классом в терминах объектно-ориентированного программирования в следующей нотации:

a) класс является описанием объекта

b) объект не является наследником класса

c) совокупность классов образует объект

d) объект и класс связаны через общие функции

 

Суть понятия полиморфизм заключается в том, что

a) в зависимости от типа объекта одно и то же имя метода может соответствовать различным действиям

b) позволяет определять новые объекты, используя свойства существующих, дополняя или изменяя их

c) объект скрывает в себе детали, несущественные для его использования

d) в объектах различных типов одному действию могут соответствовать различные имена методов

 

5. Методика анализа, проектирования и написания приложений с помощью структуры классов, каждый из которых является целостным фрагментом кода и обладает свойствами и методами, называется _______________ программированием.

 

a) объектно-ориентированным

b) модульным

c) структурным

d) формальным

 

6. Объектно-ориентированный подход к программированию использует следующие базовые понятия…

а) объект

б) свойство

в) метод обработки

г) событие

д) класс объектов

е) инструкции

ж) данные

з) модель

 

7. В основе объектно-ориентированного подхода к программированию лежит метод…

a) нисходящего проектировании

b) восходящего проектирования

c) ветвей и границ

d) дихотомического поиска

 

8. В основе абстракции объектно-ориентированного подхода лежит понятие…

a) иерархии

b) декомпозиции

c) формализации

d) рекурсии

 

9. Уменьшение объема кода программ связано с использованием ______________ программирования.

a) объектно-ориентированного

b) динамического

c) структурного

d) неопределенного

10. Объектную структуру программы имеют языки:

а)Pascal

б)Java

в)C++

г)Fortran

 

11. Открытие и закрытие окна Windows с точки зрения объектно-ориентированного программирования это …

a) метод

b) объект

c) класс

d) свойство

 

12. Программирование, основанное на модульной структуре программного продукта и типовых управляющих структурах алгоритмов, называется…

a) рекурсивным

b) структурным

c) объектно-ориентир об энным

d) логическим

Интегрированные среды программирования.

1. Системами программирования являются:

а) Adobe PhotoSho

б) Visual C++

в) Borland Delphi

г) MS DOS

д) Java

 

Система программирования предоставляет программисту возможность

a) автоматической сборки разработанных модулей в единый проект

b) автоматического построения математической модели, исходя из постановки задачи

c) выбора языка программирования

d) анализа существующих программных продуктов по соответствующей тематике

e) планирования рабочего дня

 

3. Интегрированная система программирования включает компонент для создания исходного текста программы (исходного кода), который называется …

a) текстовый редактор

b) конструктор

c) редактор связей

d) редактор формул

 

4. Интегрированная система программирования включает компонент для перевода исходного текста программы в машинный код, который называется …

a) транслятор

b) преобразователь

c) построитель кода

d) переводчик

 

5. Обнаруженное при тестировании нарушение формы записи программы приводит к сообщению о(б) ____________ ошибке

a) синтаксической

b) грамматической

c) орфографической

d) тематической

 

6. При установке нового программного продукта, необходимо выполнить его…

a) инсталляцию

b) форматирование

c) шифрование

d) упаковку

 

7. Среда интегрированного пакета прикладных программ пользователя включает…

a) множество инструментальных средств

b) минимум инструментальных средств

c) только язык разработки

d) язык разработки и отладчик

 

8.

Одной из важных функции, реализуемых системой программирования, является …

a) анализ существующих программных продуктов по соответствующей тематике

b) автоматическая сборка разработанных модулей в единый проект

c) автоматизация выбора языка программирования, исходя из постановки задачи

d) автоматическое тестирование программного продукта

Этапы решения задач на компьютере

Создание исполняемого файла из исходного текста программы предполагает выполнение процессов

а) компиляции

б) компоновки

в) интерпретации

г) исполнения программы

 

Временная эффективность программного продукта зависит

a) от времени выполнения программы

b) от времени, затраченного на разработку программы

c) от времени, затрачиваемого на освоение методов работы с программой

d) от объема используемой программой памяти

 

Пошаговая детализация постановки задачи, начиная с наиболее общей проблемы характеризует

a) метод последовательной декомпозиции сверху-вниз

b) метод проектирования «от частного к общему»

c) метод объектной декомпозиции

d) поиск логической взаимосвязи

 

Компилятор используется при программировании

a) на языке высокого уровня

b) на языке машинных команд

c) на языке сверхуровня

d) на естественном языке

 

На каком уровне информационных технологий осуществляется формализация решения задачи

a) Концептуальный

b) Логический

c) Физический

d) Эвристический

 

6. Тестирование, при котором выявляется, что сделанные изменения не повлияли на функциональность предыдущей версии, называется …

a) регрессионным
b) удаленным

c) тестированием «белого ящика»

d) тестированием «черного ящика»

 

7. Тестирование, при котором разработчик теста имеет доступ к исходному коду и может писать код, который связан с библиотеками тестируемого программного обеспечения, называется …

a) тестированием «белого ящика»

b) тестированием «черного ящика»

c) определением белого шума

d) регрессионным тестированием

 

8. Деятельность, направленная на обнаружение и исправление ошибок в программной системе называется …

a) отладкой

b) тестированием

c) рефакторингом

d) демонстрацией

 

9. Программа – интерпретатор всегда работает совместно с…

a) исходным текстом программы

b) с объектным кодом программы

c) с загрузочным модулем

d) с графическими примитивами

 

10. Программа компилятор…

a) переводит исходный текст в машинный код

b) обрабатывает структуры данных программы

c) строит задачу

d) оптимизирует код программы

 

11. Режим интерпретации можно использовать…

a) при отладке программ

b) для изменения синтаксиса языка программирования

c) для изменения семантики языка программирования

d) при изменения грамматики

 

12. Фаза анализа компилятора не может содержать этапы…

a) лексический анализ

b) синтаксический анализ

c) семантический анализ

d) генерация промежуточного кода

 

13. Таблица символов в процессе трансляции используется…

a) для хранения имён переменных и функций

b) для хранения значений переменных

c) для хранения результатов выполнения процедур

 

В чём заключается основное отличие компиляторов от интерпретаторов?

a) компиляторы генерируют целевой код, интерпретаторы нет

b) интерпретаторы генерируют целевой код, компиляторы нет

c) компиляторы в процессе трансляции исполняют исходный код, а интерпретаторы нет

d) компиляторы участвуют в построении исходного кода, а интерпретаторы нет

 

На какой стадии трансляции может быть выявлена ошибка “пропущена точка с запятой”?

a) на стадии синтаксического анализа

b) на стадии лексического анализ

c) на стадии семантического анализа

d) на стадии оптимизации кода

 

Какая стадия трансляции занимается проверкой типов в выражениях?

a) семантический анализ

b) синтаксический анализ

c) лексический анализ

d) генерация кода

 

На этапе отладки программы

a) проверяется корректность работы программы

b) строится математическая модель решаемой задачи

c) определяется состав входных данных

d) выполняется анализ физических характеристик

 

18. Процесс написания программы никогда не включает…

a) изменение физических параметров компьютера

b) редактирование текста программы

c) запись операторов в соответствующей языку программирования форме

d) процесс отладки

 

Предыдущая12345678910111213141516Следующая

Объектно-ориентированное программирование (ООП) — это парадигма (совокупность понятий и идей) программирования, в рамках которой «во главу угла» ставят понятия объектов и классов. Сейчас ООП так или иначе присутствует во всех языках, поэтому понимание его основ просто необходимо для всех, кто собирается заняться программированием.

Стоит сразу определить базовые понятия класса и объекта:

  • Класс — это шаблон, описание ещё не созданного объекта. Класс содержит данные, которые описывают строение объекта и его возможности, методы работы с ним;
  • Объект — экземпляр класса. То, что «рождено» по «чертежу», то есть по описанию из класса. В качестве примера объекта и класса можно привести технический чертёж для изготовления детали — это класс. Выточенная же на станке по размерам и указаниям из чертежа деталь — объект.

Появление объектно-ориентированного программирования стало результатом возросших требований к функционалу программ, когда описывать объект приходилось раз за разом в разных участках кода. Тогда и было введено понятие класса, параметры которого задавались единожды, а после в коде оставлялись только ссылки на класс, чтобы код самостоятельно «собрал» объект. На ООП-языке Java описание класса выглядит так:

// Описываем отдельный новый класс class Circle { // свойства класса public double x; // абцисса центра public double y; // ордината центра public double y; // радиус // методы класса // выводит на экран параметры окружности public void printCircle(){ System.out.println(«Окружность с центром (» + x + «;» + y + «) и радиусом » + r); } // перемещает центр, движение окружности public void moveCircle(double a, double b){ x = x + а; y = y + b; } // масштабируем, выполняем преобразование подобия с коэффициентом k public void zoomCircle(double k){ r = r * k; } }

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

В качестве более живого примера объектно-ориентированного программирования можно привести мастерскую, где есть старший слесарь (программист) и ученики (разные участки кода). При устаревших парадигмах программирования старшему слесарю пришлось бы сначала объяснить ученику №0, как вырезать деталь (создать объект), затем ученику №1 то же самое, потом ученику №2 и так далее. ООП же даёт слесарю целую пачку бесконечных подробных чертежей (классов) деталей, которые он может раздавать ученикам вместо повторного объяснения (заведения описания объекта). Как нетрудно догадаться, это ускоряет работу и позволяет старшему слесарю уделить внимание более важным проблемам мастерской.

Основные понятия ООП

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

В объектно-ориентированном программировании выделяют 4 основных принципа: абстракция, инкапсуляция, наследование и полиморфизм.

Понятие абстракции в объектно-ориентированном программировании

Абстракция — способ выделения самых значимых характеристик объекта, при этом менее значимые отбрасываются. В ООП абстракция — работа только со значимыми характеристиками. Суть этого принципа в том, чтобы отделить составные объекты, состоящие из «меньших» объектов, от этих самых объектов, то есть от их составляющих.

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

Принцип инкапсуляции в ООП

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

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

  • когда нужно сохранить некоторый участок кода без изменений со стороны пользователя;
  • когда нужно ограничить доступ к коду — в связи с уникальностью используемых техник, которые автор хочет оставить «при себе»;
  • когда изменение кода повлечёт за собой неработоспособность программы или её взлом.

Наследование классов в ООП

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

Класс-донор называется в таком случае родительским или базовым, а его «потомок» — наследником, дочерним классом.

Существует также множественное наследование, при котором у класса-наследника может быть несколько «родителей». При этом класс наследует методы всех своих отцов и матерей, что часто приводит к ошибкам. Наследование требует определения ещё одного понятия:

  • прототип — объект-образец, на основе которого «рождаются» другие объекты, полностью копируя его или изменяясь в процессе. При изменении в прототипе в копиях также происходят соответствующие изменения.

Принцип полиморфизма

Полиморфизм — способность объектов самим определять, какие методы они должны применить в зависимости от того, где именно в коде они находятся. То есть, объект может изменяться в зависимости от своего местоположения и действовать по-разному, что позволяет не заводить лишних структур. Иначе говоря: один интерфейс — множество решений.

Полиморфизм позволяет повысить процент повторного использования кода и сократить тем самым размер программы и временные затраты на её написание.

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

На сегодняшний день самые популярные языки программирования — это объектно-ориентированные, к примеру, С++ и Java. Также существуют языки, которые не предполагают написания программных операторов, а программирование происходит в виде визуального проектирования с помощью интерфейса языка. Примером таких систем являются VisualBasic, Delphiи C++ Builder.

 

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

Каждый из объектов содержит свой собственный код и данные, которые относятся к этому объекту.

Любая программа, написанная на языке ООП, отражает в своих данных состояние физических предметов либо абстрактных понятий – объектов программирования, для работы, с которыми она предназначена.

Все данные об объекте программирования и его связях с другими объектами можно объединить в одну структурированную переменную. В первом приближении ее можно назвать объектом.

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

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

Класс – это описание множества объектов программирования (объектов) и выполняемых над ними действий.

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

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

Любая функция в программе представляет собой метод для объекта некоторого класса.

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

Вся программа в таком виде представляет собой объект некоторого класса с единственным методом run (выполнить).

Программирование «от класса к классу» включает в себя ряд новых понятий. Основными понятиями ООП являются

  • инкапсуляция;
  • наследование;
  • полиморфизм.

Инкапсуляция данных (от «капсула») – это механизм, который объединяет данные и код, манипулирующий с этими данными, а также защищает и то, и другое от внешнего вмешательства или неправильного использования. В ООП код и данные могут быть объединены вместе (в так называемый «черный ящик») при создании объекта.

Внутри объекта коды и данные могут быть закрытыми или открытыми.

Закрытые коды или данные доступны только для других частей того же самого объекта и, соответственно, недоступны для тех частей программы, которые существуют вне объекта.

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

Наследование. Новый, или производный класс может быть определен на основе уже имеющегося, или базового класса.

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

Иначе говоря, новый класс наследует как данные старого класса, так и методы их обработки.

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

Пример наследования – определение структуры, отдельный член которой является ранее определенной структурой.


Полиморфизм – это свойство, которое позволяет один и тот же идентификатор (одно и то же имя) использовать для решения двух и более схожих, но технически разных задач.

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

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

Например, нахождение абсолютной величины в языке Си требует трех разных функций с разными именами:

В C++ можно описать полиморфную функцию, которая будет иметь одинаковое имя и разные типы и наборы аргументов.
Назад: Язык C++

1
2
3

int abs(int);
long int labs(long int);
double fabs(double);

.

.

Добавить комментарий

Закрыть меню