
- •Что понимается под термином .Net Framework?
- •Приведите синтаксис оператора switch в общем виде. Проиллюстрируйте его фрагментом программы на языке c#.
- •Что понимается под термином «пространство имен» и в чем его назначение?
- •Парадигмы программирования.
- •Что понимается под термином «класс»?
- •Какие элементы определяются в составе класса?
- •Каково соотношение понятий «класс» и «объект»?
- •Что понимается под термином «члены класса» опишите каждый из них?
- •Что понимается под термином «конструктор» и в чем его назначение, сколько конструкторов может содержать класс?
- •Приведите синтаксис описания класса в общем виде. Проиллюстрируйте его фрагментом программы на языке c#.
- •Какие модификаторы типа доступа Вам известны, опишите каждый из них?
- •Приведите синтаксис создания объекта в общем виде. Проиллюстрируйте его фрагментом программы на языке c#.
- •Приведите синтаксис конструктора класса в общем виде. Проиллюстрируйте его фрагментом программы на языке c#.
- •Что понимается под термином «наследование»?
- •Что общего имеет дочерний класс с родительским и в чем различие?
- •Приведите синтаксис описания наследования классов в общем виде. Проиллюстрируйте его фрагментом программы на языке c#.
- •Что понимается под термином «полиморфизм» и в чем его основной принцип?
- •Какие механизмы используются в языке c# для реализации концепции полиморфизма?
- •Что понимается под термином «виртуальный метод» и переопределенный метод?
- •Что понимается под термином «интерфейс»?
- •Что такое сборка «мусора», зачем она нужна?
- •Что такое инкапсуляция. Приведите примеры.
- •Что такое перегрузка методов. Приведите примеры.
Что понимается под термином «полиморфизм» и в чем его основной принцип?
Полиморфизм позволяет определять в наследуемом классе методы, которые будут общими для всех наследующих классов, при этом наследующий класс может определять специфическую реализацию некоторых или всех этих методов. Главный принцип полиморфизма: «один интерфейс, несколько методов». Благодаря ему, можно
пользоваться методами, не обладая точными знаниями о типе объектов
Какие механизмы используются в языке c# для реализации концепции полиморфизма?
Основным инструментом для реализации принципа полиморфизма является использование виртуальных методы и абстрактных классов.
В более общем смысле, концепцией полиморфизма является идея "один интерфейс, множество методов". Это означает, что можно создать общий интерфейс для группы близких по смыслу действий.
Что понимается под термином «виртуальный метод» и переопределенный метод?
Виртуальный метод отличается тем, что он может быть переопределен в одном или нескольких производных классах. Следовательно, у каждого производного класса может быть свой вариант виртуального метода.
При вызове определяется именно тот вариант виртуального метода, который следует вызывать, исходя из типа объекта, к которому происходит обращение по ссылке, причем это делается во время выполнения. Поэтому при ссылке на разные типы объектов выполняются разные варианты виртуального метода.
Если базовый класс содержит виртуальный метод и от него получены производные классы, то при обращении к разным типам объектов по ссылке на базовый класс выполняются разные варианты этого виртуального метода.
Метод объявляется как виртуальный в базовом классе с помощью ключевого слова virtual, указываемого перед его именем. Когда же виртуальный метод переопределяется в производном классе, то для этого используется модификатор override. А сам процесс повторного определения виртуального метода в производном классе называется переопределением метода. При переопределении имя, возвращаемый тип и сигнатура переопределяющего метода должны быть точно такими же, как и у того виртуального метода, который переопределяется. Кроме того, виртуальный метод не может быть объявлен как static или abstract.
Какие условия определяют выбор версии виртуального метода?
При определении виртуального метода в составе наследуемого класса
перед типом возвращаемого значения указывается ключевое слово virtual,
а при переопределении виртуального метода в наследующем классе
используется модификатор override. Виртуальный метод не может быть
определен с модификатором static или abstract.
Что означает термин «переопределенный метод»?
процесс повторного определения виртуального метода в производном классе называется переопределением метода.
Переопределение метода положено в основу концепции динамического выбора вызываемого метода - выбора вызываемого переопределенного метода осуществляется во время выполнения программы, а не во время компиляции.
Приведите синтаксис виртуального метода в общем виде. Проиллюстрируйте его фрагментом программы на языке C#.
Синтаксис:
virtual тип имя (список_параметров){тело_метода};
Пример:
public virtual string FontInfo(Font obj)
{
string s = "Информация о шрифте: " + "Тип шрифта: " + typeFont + "\nРазмер шрифта: " + fontSize + "\n";
return s;
}
}
Что понимается под термином «абстрактный класс» и в чем его особенность?
В абстрактном классе определяются лишь общие предназначения методов, которые должны быть реализованы в наследующих классах, но сам по себе этот класс не реализует один, или несколько подобных методов,
называемых абстрактными (для них определены только некоторые характеристики, такие как тип возвращаемого значения, имя и список
параметров).
Возможно ли создание иерархии классов посредством абстрактного класса?
Абстрактный класс предназначен только для создания иерархии классов,
Возможно ли создание объектов абстрактного класса?
нельзя создать объект абстрактного класса.
Приведите синтаксис абстрактного класса в общем виде. Проиллюстрируйте его фрагментом программы на языке C#.
Пример:
abstract class Animal
{
public string Name;
protected int Weight;
private int Type;
abstract void Feed();
public int Animal(int W, int T, string N)
{
Weight=W;
Type=T;
Name=N;
}
public int GetWeight(){return Weight;}
}
class Predator:Animal
{
private int Speed;
override void Feed(int Food){
Weight += Food;}
}