engineerklub | Дата: Суббота, 01.06.2024, 12:06 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 28596
Статус: Offline
| Объектно-ориентированное программирование. Билет №2
Сдано в учебном заведении: ДО СИБГУТИ
Описание: Билет № 2
1. Требуется: 1) оставить метод Move только в классе TChessMan; 2) Изменить программу так, чтобы после выполнения п.1 результат ее работы не изменился.
{TChessMan – шахматная фигура; TKing – король; TBishop – слон}
Type TColumns=’a’..’h’; TRows=1..8; TChessMan=object Column: TColumns; Row: TRows; procedure Move (C: TColumns; R: TRows); procedure Clear; procedure Display; End; TKing=object (TChessMan) procedure Move (C: TColumns; R: TRows); procedure Display; End; TBishop=object (TChessMan) procedure Move (C: TColumns; R: TRows); procedure Display; End; Procedure TChessMan.Move (C: TColumns; R: TRows); Begin Clear; Column:= C; Row:= R; Display; {реализация методов Move классов TKing и TBishop аналогична} End; procedure TChessMan.Clear; begin {Очистка клетки шахматной доски. В теле метода не используются никакие методы. Для всех классов реализация очистки одинаковая.} end; Procedure TChessMan.Display; begin {рисует символ *} end; Procedure TKing.Display; begin {рисует Короля} end; Procedure TBishop.Display; begin {рисует Слона} end;
var bs: TBishop; begin … bs.Move(b,5); … end.
Указания к ответу на 1-ый вопрос билета: Чтобы ответить на поставленный в задаче вопрос надо определить: Выполнится ли в результате работы предложенного фрагмента программы метод TBishop.Display или нет? Это уже почти и будет Вашим ответом. Как это определить? Проанализируйте работу программы, начиная с операторов выполняемой части (другими словами, с операторов раздела описания действий). Повторите это дважды: до внесения каких-либо изменений в приведенный фрагмент программы и после (если, конечно, Вы посчитаете необходимым что-либо изменить). Таким образом, проанализировав программу в первоначальном виде, Вам станет понятно: надо ли что-нибудь в ней изменять, дополнять и, если надо, аналогично проанализировав программу еще раз после внесения изменений, Вы проверите – правильно ли она работает, а именно: выполнится ли в результате ее работы метод TBishop.Display или нет? Как проанализировать работу программы? Точно так же, как в лекциях анализируется работа программ из примеров 2.5 и 2.6. Так же, как там, Вам необходимо в ответе на данный вопрос билета изобразить цепочки вызовов методов: до внесения каких-либо изменений в код программы и после (если, конечно, Вы что-то измените). Важно! Не надо доводить приведенный фрагмент до полностью работающей программы. Если написано, что, например, здесь рисуется то-то, то пусть это так и остается – код вместо комментариев дописывать не требуется. Вы вносите изменения (редактируете, добавляете или удаляете) только в тот код, который написан. Итак, ответом на 1-ый вопрос билета являются: 1) Цепочка вызовов методов до внесения каких-либо изменений в приведенный фрагмент программы; 2) Ответ на вопрос: выполнится ли в результате работы предложенного фрагмента программы метод TBishop.Display или нет? если да – Ваш ответ закончен, если нет – переходите к п. 3); 3) Внесенные Вами изменения в код программы. (Не обязательно переписывать весь код программы, напишите только измененные строки, например, так: строка из программы и эта же строка после внесения изменений); 4) Цепочка вызовов методов после внесения Ваших изменений.
2. Позднее связывание – это: а) процесс статического связывания метода с объектами; б) процесс динамического связывания метода с объектами; в) процесс статического связывания полей с объектом; г) процесс динамического связывания полей с объектом.
3. Свойство объектов включать в себя поля и методы обработки – это: а) полиморфизм; б) инкапсуляция; в) иерархия; г) перекрытие.
СКАЧАТЬ
|
|
| |