
- •Билет 1
- •3. Замещение методов и принцип подстановки.
- •Билет 2
- •1. Принцип Чёрча. Гипотеза Ворфа. Гипотеза Сапира-Ворфа. Формальные модели вычислений (модели Чёрча, Поста, Маркова, Тьюринга, Клини и другие).
- •2. Итераторы. Объекты-функции. Будущее ооп.
- •Билет 5
- •Билет 8
- •Понятие полиморфной переменной
- •3. Формы наследования. Порождение подкласса для комбинирования.
- •Формы наследования
- •Билет 19
- •Билет 20
- •Билет 21
- •Билет 22
- •3. Программные компоненты. Их разновидность. Основная целевая направленность.
- •Билет 23
- •1. Восстановление памяти. Указатели. Эффективное средство работы с динамической информации. Создание неизменяемого экземпляра объекта.
- •Билет 25
- •1. Наследование и принцип подстановки. Отношения: быть экземпляром и включать как часть.
- •Билет 26
- •3. Издержки наследования.
- •Билет 27
- •1. Противопоставление композиции и наследование. Преимущества и недостатки двух подходов.
- •Билет 28
- •Билет 29
- •Билет 30
- •3. Интерфейс и реализация.
Билет 21
1. Понятия сообщения, экземпляра и инициализации. Задача компилятора.
Сообщение это совокупность знаков, отображающих ту или иную информацию. Передача сообщений (а, следовательно, и информации) на расстояние осуществляется с помощью какого-либо материального носителя, например, бумаги или магнитной ленты или физического процесса, например, звуковых или электромагнитных волн, тока и т.д.
Инициализация (от англ. initialization, инициирование) — создание, активация, подготовка к работе, определение параметров. Приведение программы или устройства в состояние готовности к использованию.
Компиля́тор — программа, выполняющая компиляцию.
Компиляция — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду.
Входной информацией для компилятора (исходный код) является описание алгоритма или программа на проблемно-ориентированном языке, а на выходе компилятора — эквивалентное описание алгоритма на машинно-ориентированном языке (объектный код).
2. Преобразование типов. Причины ограничения присваивания(надкласс и подкласс и приведения типа).
Преобразование типов — это процесс изменения типа значения. Например, можно преобразовать строку "1234" в число. Кроме того, можно преобразовать данные любого типа в тип String. Преобразование некоторых типов невозможно. Например, объект Date нельзя преобразовать в объект ActiveXObject.
3. Согласование интерфейса.
Билет 22
1. Формализация интерфейса. Выбор имен.
Комбинация имени класса и имени метода образует полное имя.
2. Способы создания и инициализации. Стек и куча. Автоматические и динамические переменные.
Создание объектов в системе может представлять ресурсоемкую операцию. Например, для построения объекта необходимо выполнить сложные вычислительные задачи или обработать большой поток данных из базы данных.
Инициализация (от англ. initialization, инициирование) — создание, активация, подготовка к работе, определение параметров. Приведение программы или устройства в состояние готовности к использованию.
В компьютерных науках ку́ча — это специализированная структура данных типа дерево, которая удовлетворяет свойству кучи: если B является узлом-потомком узла A, то ключ(A) ≥ ключ(B). Из этого следует, что элемент с наибольшим ключом всегда является корневым узлом кучи
Стек (англ. stack — стопка) — структура данных, представляющая собой список элементов, организованных по принципу LIFO (англ. last in — first out, «последним пришёл — первым вышел»).
Все переменные, которые вы объявляли до сих пор, объявлялись внутри блока — то есть, внутри пары фигурных скобок. Такие переменные называются автоматическими, и о них говорят, что у них локальная область видимости, или область видимости блока. Автоматическая переменная "видима", начиная с точки, в которой она объявлена, и до конца блока, содержащего ее объявление. Пространство, которое занимает автоматическая переменная, выделяется автоматически в области памяти, называемой стеком, которая специально предназначена для этой цели. По умолчанию размер стека составляет 1 Мбайт, чего достаточно для большинства случаев, хотя если его не хватает, вы можете увеличить размер стека, установив опцию проекта /STACK в необходимое значение по своему выбору.
Переменные, созданием и уничтожением которых явно может управлять программист, называются динамическими переменными.