Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник_С#_ч_2.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

1 Понятие класса?

Продолжение приложения А

Класс это тип данных, содержащий поля, методы и события.

2 Понятие свойства класса?

Это совокупность методов, позволяющих классу обмениваться (читать или записывать) значениями полей класса с другими классами программы.

3 Понятие конструктора класса?

Это специальные методы класса, которые предназначены для создания объектов класса и присваивания начальных значений полям класса.

4 Понятие деструктора класса?

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

5 Понятие события класса?

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

6 Понятие индексатора класса?

Это средство доступа к элементам данных класса (обычно массивам) по их порядковому номеру.

7 Назначение поля this объекта?

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

8 Как называют переменную типа класс?

Переменную типа класс обычно называют объектом.

9 Что означает служебное слово static в описании класса?

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

10 Что означает служебное слово public в описании данных класса?

Начало описания данных открытых для доступа из программы.

ЭЛЕМЕНТЫ КЛАССОВ

1 Для чего предназначен конструктор с умолчанием?

Он создает объект и полям объекта присваивает некоторые фиксированные значения.

2 Для чего предназначен конструктор с заданием параметров?

Он создает объект и полям объекта присваивает задаваемые значения.

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

Перегрузкой методов.

4 Как называются несколько конструкторов одного класса?

Множественные конструкторы.

5 Когда вызывается деструктор класса tka?

Он вызывается автоматически сборщиком мусора при удалении объекта из кучи.

6 Как обычно называется метод, если тип его возвращаемого значения объявлен void?

Процедура.

Продолжение приложения А

7 Как должен заканчиваться в языке С# метод если его тип не void?

Работа метода должна заканчиваться выполнением Оператора return.

8 Какие формальные параметры метода С# называются параметры-ссылки?

Формальные параметры, перед которыми стоит слово ref.

9 Как называется объединение в одной структуре полей и методов их обработки?

Инкапсуляция.

10 Какой механизм используется в классах для доступа к «закрытым» полям класса?

Свойства.

ПРИНЦИПЫ ООП

1 Как один объект может информировать другой объект об изменении своего состояния?

С помощью механизма событий.

2 Как называется объект, информирующий другой объект об изменении своего состояния?

Источник события.

3 Как формируется «пустой» обработчик некоторого события?

В окне свойств на странице событий необходимо дважды кликнут в соответствующей строке.

4 Какой обработчик события будет сформирован, если на форме дважды кликнут на кнопку button1?

private void button1_Click(object sender, EventArgs e)

5 Для чего используется перегрузка операций в классах?

Она позволяет использовать в обычных математических выражениях переменный типа класс.

6 Понятие наследования?

Наследование это способность производного класса использовать некоторые свойства, данные и методы базового класса.

7 Что является целью наследования классов?

Целью наследования является повторное использование уже созданных классов.

8 Как называется класс, свойства, данные и методы которого наследуются другим классом?

Базовый класс.

9 Как называется класс, наследующий свойства, данные и методы базового класса?

Производный класс.

10 На чем базируется объектно-ориентированное программирование?

На принципах инкапсуляции, наследовании и полиморфизме.

ПРИНЦИП ПОЛИМОРФИЗМА

Продолжение приложения А

1 Какой класс является базовым классом в иерархической цепочке всех классов языка C#?

System.Object.

2 Какой объект базового или производного классов создается раньше при вызове конструктора производного класса?

Объект базового класса.

3 В чем преимущество цепочек наследуемых классов?

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

4 Что означает статическое наследование в языке C#?

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

5 Что означает динамическое наследование в языке C#?

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

6 Понятие полиморфизма в языке C#?

Полиморфизм это многообразие форм реализации одноименных методов в цепочке наследуемых классов.

7 Как реализуется механизм полиморфизма?

Механизм полиморфизма реализуется за счет перекрытие одноименных методы базовых классов.

8 Как называется метод, объект для которой определяется во время работы программы?

Такой метод называется виртуальным.

9 Какой класс в языке C# называется абстрактным базовым классом?

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

10 Что представляет собой таблица виртуальных методов?

Специальная таблица, в которой находятся все виртуальные методы и адреса их точек входа.

ИСПОЛЬЗОВАНИЕ ИНТЕРФЕЙСОВ

1 Понятие интерфейса?

Интерфейс представляет собой полностью абстрактный класс, все методы которого абстрактны.

2 В чем отличие наследования интерфейсного класса от обычного наследования?

Класс, наследующий интерфейс (интерфейсный класс), обязан полностью реализовать все методы интерфейса.

3 В чем отличие интерфейсного класса от обычного класса?

Для интерфейсного класса в С# разрешено множественное наследование.

4 Почему в интерфейсных класса возможно появление конфликтов в названиях имен?

Продолжение приложения А

Конфликт имен может проявляться при множественном наследовании, потому что разные родительские интерфейсы могут содержать одноименные методы с одинаковым синтаксисом.

5 Как можно решать конфликт имен при множественном наследовании?

Один из способов решения конфликта имен при множественном наследовании заключается в склеивание методов .

6 В чем суть склеивание методов?

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

7 В чем суть переименования методов?

Это один из способов решения конфликта имен при множественном наследовании, при этом одноименных методов родительских интерфейсов переименовываются. Для каждого «нового» метода записывается своя реализация.

8 В чем преимущество интерфейсов?

Интерфейсы задают дополнительные свойства классу. Каждый интерфейс наделяет класс тем или иным новым свойством.

9 Какой тип могут иметь интерфейсы?

У интерфейсов нет типов.

10 Какое служебное слово используется при объявлении интерфейса?

При объявлении интерфейса перед именем класса необходимо использовать служебное слово interface.

КОМПОЗИЦИЯ И КОЛЛЕКЦИЯ КЛАССОВ

1 Понятие композиции классов?

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

2 В чем основная цель композиции классов?

Композиция классов это один из способов повторного использования ранее написанных фрагментов программ.

3 Понятие коллекции классов?

Объединение однотипных объектов в одной структуре данных называется коллекцией классов.

4 Какая объединяющая структура обычно используется для коллекционирования однотипных объектов?

Класс, который называется коллекцией.

5 Какие коллекции относятся к коллекциям с прямым доступом?

Это коллекции, доступ к элементам которой возможен по номеру элемента, например, массивы.

5 Какие коллекции относятся к коллекциям с последовательным доступом?

Продолжение приложения А

Это коллекции, для доступа к элементам которой необходимо выполнять последовательный поиск, например, стеки, очереди, списки.

6 Какие коллекции относятся к иерархическим коллекциям?

В иерархических коллекциях данные организованы в виде различных «древовидных» структур, например, в виде бинарного дерева или иерархической системы классификации.

7 Объекты какого типа могут включаться в коллекцию класса ArrayList?

Коллекция класса ArrayList предназначена для хранения объектов произвольного типа.

8 Какое свойство класса ArrayList хранит текущую емкость коллекции?

Это свойство целого типа Capacity.

9 Какое свойство класса ArrayList хранит текущую длину коллекции?

Это свойство целого типа Count.

10 Какой метод класса ArrayList позволяет включать объект в коллекцию на нужное место?

Это метод Insert (int Indx, Object Value);, который вставляет элемент Value на нужное место Indx коллекции.

ДЕЛЕГАТЫ

1 Понятие делегата?

Делегат это специальный класс, предназначенный для хранения ссылок на методы.

2 Какой класс называется функциональным типом?

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

3 Что является экземпляром класса типа делегат?

Экземплярами такого класса являются ссылки на функции (методы) – им также как переменным выделяются места в памяти компьютера, начальный адрес которых являются «точками» входа в функции и передаются ссылками.

4 Какое служебное слово используется при объявлении делегата?

При объявлении интерфейса перед именем класса необходимо использовать служебное слово delegate.

5 Какой метод или функция может использоваться в качестве параметра вызова делегата?

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

6 Когда формируются ссылки на параметры вызова делегата?

Ссылки на параметры вызова делегата формируются во время работы программы (динамически).

7 Когда совместимы типы делегатов?

Типы делегатов всегда несовместимы друг с другом, даже если их форматы записей совпадают.

Продолжение приложения А

8 Когда совместимы экземпляры делегатов?

Если для объявления делегатов использован один и тот же тип, то имеет смысл говорить о совместимосте (равенстве) экземпляров делегатов.

9 Какие абстрактные классы платформы .NET можно наследовать при создании делегатов?

В стандартной системе типов (CTS) платформы .NET есть абстрактные классы System.Delegаte и System.MulticastDelegate, которые можно использовать в качестве базовых при создании делегатов.

10 Понятие многоадресного делегата?

Для делегатов существует понятие многоадресный делегат – делегат, способный указывать на любое количество функций. Поскольку все делегаты языка С# являются производными классами от System.MulticastDelegate, то любой делегат С# потенциально является многоадресным.

СОБЫТИЯ

1 Понятие события?

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

2 Где находятся заготовки обработчиков событий на действия пользователя для элементов управления?

Для многих действий пользователя разработаны заготовки обработчиков событий, которые можно посмотреть в окне Properties на странице Events.

3 Как обычно называются события класса?

Обработчик сообщений.

4 Что произойдет, если дважды «Кликнуть» на кнопку, расположенную в окне нашей формы?

Будет сформирован обработчик этого события со следующим заголовком:

private void button1_Click(object sender, EventArgs e).

5 Что определяет первый формальный параметр всех обработчиков сообщений?

Он определяет отправителя сообщения, иногда говорят источник сообщения.

6 Что определяет второй формальный параметр обработчиков сообщений?

Второй формальный параметр шаблонов обработчиков событий является переменная типа объект точнее ссылкой на объект класса ХХХEventArgs, который содержит связанные с событием параметры фактически это сообщение.

7 Где перечислены события, на которые должны реагировать элементы управления формы?

Для каждого элемента в файле Form1.Designer.cs, в разделе инициализации помимо определения свойств элементов управления, определяются

Продолжение приложения А

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

8 Как можно объединить все события класса?

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

9 Где происходит добавление событий в многоадресный делегат формы?

Это происходит в методе InitializeComponent() с помощью операций присваивания, например,

this.MouseClick += new System.Windows.Forms.MouseEventHandler

(this.Form1_MouseClick);

10 Где объявляется многоадресный делегат формы?

В файле Form1.Designer.cs, он находится «по умолчанию».