Это верно только для виртуальных методов.
Учреждение образования «Гомельский торгово-экономический колледж» Белкоопсоюза
ОБЯЗАТЕЛЬНАЯ КОНТРОЛЬНАЯ РАБОТА №1
По дисциплине «Объектно-ориентированное программирование» Для групп П-21, П-22, П-23
специальность: 2-40 01 01 «Программное обеспечение информационных технологий» специализация: 2-40 01 01 35 «Программное обеспечение обработки экономической и деловой информации» 2-40 01 01 33 «Компьютерная графика»
Разработали преподаватели О.Л. Иткина Н.С. Васьковцова
Гомель, 2011 ПОЯСНИТЕЛЬНА ЗАПИСКА Обязательная контрольная работа охватывает материал дисциплины «Объектно-ориентированное программирование» Эта дисциплина изучается учащимися на втором курсе в объеме 30 часов. Целью проведения данной итоговой контрольной работы является проведение контроля знаний и умений результатов учебной деятельности учащихся. Преподаватель должен установить уровень знаний, умений и навыков, полученных учащимися в ходе изучения вышеуказанной дисциплины. Учащиеся должны: · дать определения основным понятиям объектно-ориентированного программирования; · понимать основные конструкции языка Object Pascal; · описывать основные принципы объектно-ориентированных технологий с использованием конструкций языка Object Pascal. Обязательная контрольная работа содержит 5 вариантов заданий. Приведены критерии оценивания по десятибалльной системе.
Работа должна быть выполнена и оформлена на проштампованном листе. На выполнение контрольной работы выделяется 45 минут.
Таблица оценочных критериев по десятибалльной системе
Выставление отметок выполняется в следующих интервалах:
Критерии оценок:
ВАРИАНТ №1 1. Выберите правильные утверждения. Технология ООП по сравнению с традиционной позволяет создавать: 1) более простые по структуре программы; 2) более быстродействующие программы; 3) программы, допускающие более простую модификацию; 4) более короткие программы. Выберите правильный ответ. При использовании new в виде функции ее первым параметром является: 1) указатель на экземпляр объекта; 2) тип объекта; 3) экземпляр объекта; 4) тип указателя на объект. Дайте определение класса. Класс - множество объектов, связанных общностью структуры и поведением. Класс — это множество объектов, имеющих одинаковую структуру. Опишите принцип полиморфизма • Полиморфизм: Полиморфизм, наряду с наследованием, является фундаментальной концепцией объектной модели программирования. Суть полиморфизма в том, что с объектами раз-личных классов, имеющих один и тот же базовый класс, можно при определенных усло-виях обращаться, как с объектами базового класса; однако объект, являющийся объек-том базового класса, будет вести себя по-разному в зависимости от того, что он такое на самом деле, т. е. представитель какого из производных классов.
ВАРИАНТ №2 Выберите правильные утверждения. Преимуществами ООП являются: 1) возможность использования в новых программах ранее созданных объектов; 2) увеличение быстродействия программы; 3) простота использования; 4) легкость внесения изменений в программу. Выберите правильный ответ Какая процедура применяется для освобождения памяти из-под объектов? 1) Dispose; 2) Delete; 3) Done; 4) Free; 5) Close. Дайте определение объекта. Объект представляет собой особый опознаваемый предмет или сущность, имеющий четко определенное функциональное назначение в данной предметной области. Опишите принцип наследования. Наследование - это такая иерархичность абстракций, в которой подклассы насле-дуют строение от одного или нескольких классов. В подклассе, кроме того, могут быть определены дополнительные атрибуты и методы. Классы отражают наиболее общие, а подклассы более специализированные абстракции. Различают случаи простого и мно-жественного наследования. производный класс наследует всю структуру характеристик и поведение базового, однако может дополнять или модифицировать их. Механизм, позволяющий объектам класса наследовать характеристики (данные и мето-ды) более простых и общих типов (классов). - средство получения новых классов из суще-ствующих ВАРИАНТ №3 Выберите правильные утверждения. Инкапсуляция приводит к: 1) упрощению структуры программы; 2) уменьшению степени абстракции программы; 3) упрощению поиска ошибок; 4) упрощению внесения изменений в программу. Выберите правильный ответ Деструктор обязательно описывать: 1) для любых объектов; 2) для объектов, имеющих конструктор; 3) для динамических объектов; 4) для динамических полиморфных объектов. Дайте определение метода Методы: Процедуры и функции, связанные с классом. Они определяют действия, ко-торые можно выполнять над объектом такого типа, и которые сам объект может выпол-нять. Опишите порядок создания динамического объекта Динамическое создание объектов Для работы с динамическими объектами используется расширенный синтаксис процедур New и Dispose. Обе процедуры в этом случае содержат в качестве второго параметра имя конструктора или деструктора объекта:
New(P, Construct) или Dispose(P, Destruct). Где Р — указатель на переменную объектного типа, a Construct и Destruct — конструктор и деструктор этого типа. Действие процедуры New в случае расширенного синтаксиса равносильно действию операторов New(P); Р^.Construct; А вызов процедуры Dispose эквивалентен последовательности Р^.Destruct; Dispose(P); Динамические объекты. Деструкторы Для выделения памяти под объекты используются процедура и функция new. Например, если определены указатели: Type pmonstr = *monstr: pdaemon = ^daemon; var pm: pmonstr; pd: pdaemon; можно создать объекты с помощью вызовов: new(pm); { или pm:= new(pmonstr); } new(pd); { или pd:= new(pdaemon); } Обратите внимание, что при использовании new в форме процедуры параметром является указатель, а в функцию передается его тип. Так как после выделения памяти объект обычно инициализируют, в Паскале для удобства определены расширенные формы new с двумя параметрами. На месте второго параметра задается вызов конструктора объекта: new(pm, initd, 1, 1, 1); { или pm:= new(pmonstr, initCl. 1, 1, 1)); } ' new(pd, initd, 1, 1, 1, 1): {или pd:= new(pdaemon. initd, 1, 1, 1, D); } Для освобождения памяти, занятой объектом, применяется процедура Dispose: Dispose(pm); При выполнении этой процедуры освобождается количество байтов, равное размеру объекта, соответствующего типу указателя. Следовательно, если на самом деле в указателе хранится ссылка на объект производного класса, который, как известно, может быть больше своего предка, часть памяти не будет помечена как свободная, но доступ к ней будет невозможен, то есть появится мусор. Второй случай появления мусора возникает при применении процедуры Dispose к объекту, поля которого являются указателями. Для корректного освобождения памяти из-под полиморфных объектов следует использовать вместе с процедурой Dispose специальный метод — деструктор. Ему рекомендуется давать имя done, например: destructor monstr.done: Begin end: Для правильного освобождения памяти деструктор записывается вторым параметром процедуры Dispose: Dispose(pm, done);
Это верно только для виртуальных методов. Для простых объектов деструктор может быть пустым, а для объектов, содержащих динамические поля, в нем записываются операторы освобождения памяти для этих полей. В деструкторе можно описывать любые действия, необходимые для конкретного объекта, например закрытие файлов. Исполняемый код деструктора никогда не бывает пустым, потому что компилятор по служебному слову destructor вставляет в конец тела метода операторы получения размера объекта из VMT. Деструктор передает этот размер процедуре Dispose, и она освобождает количество памяти, соответствующее фактическому типу объекта. (Вызов деструктора вне процедуры Dispose память из-под объекта не освобождает) Деструкторы рекомендуется делать виртуальными, чтобы при вызове всегда выполнялся деструктор, соответствующий типу объекта. Деструкторы обязательно использовать только для динамических полиморфных объектов, однако можно их применять и для статических объектов. В объекте можно определить несколько деструкторов (естественно, в этом случае они должны иметь разные имена). ВАРИАНТ №4 1. Дано описание объектов: type А = object У: integer: end: В = object (A) Z, Т: integer: end: var Ы: В; Укажите правильные способы обращения к полям объекта: 1) B.Z 2) bl.Y 3) Y.B 4) Ы.Т 5) Т.Ы
Выберите правильный ответ Освобождает ли динамическую память деструктор с пустым телом? 1) Да. 2) Да, только для динамических объектов. 3) Да, только для объектов, имеющих конструктор. 4) Нет.
Дайте определение полиморфизма Полиморфизм, наряду с наследованием, является фундаментальной концепцией объектной модели программирования. Суть полиморфизма в том, что с объектами раз-личных классов, имеющих один и тот же базовый класс, можно при определенных усло-виях обращаться, как с объектами базового класса; однако объект, являющийся объек-том базового класса, будет вести себя по-разному в зависимости от того, что он такое на самом деле, т. е. представитель какого из производных классов. Опишите принцип инкапсуляции Инкапсуляция - это процесс разделения элементов объекта, определяющих его устройство и поведение. Некоторые параметры объекта могут быть локализованы внутри объекта и недо-ступны для прямого воздействия извне объекта. Например, во время движения объекта-автомобиля объект-водитель может воздействовать только на ограниченный набор органов управления (рулевое колесо, педали газа, сцепления и тормоза, рычаг переклю-чения передач) и ему недоступен целый ряд параметров, характеризующих состояние двигателя и автомобиля в целом – инкапсуляция. это принцип, согласно которому любой класс должен рассматриваться как чёрный ящик — пользователь класса должен видеть и использовать только ин-терфейсную часть класса и не вникать в его внутреннюю реализацию.
ВАРИАНТ №5 1. Выберите правильные утверждения: При описании метода перед его именем указывается: 1) имя типа объекта; 2) имя экземпляра объекта; 3) имя поля объекта; 4) имя объекта-предка; 5) ничего не указывается.
Выберите правильный ответ
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|