Конструкторы. Виды конструкторов, области применения, синтаксический блок

Ответы к экзамену по ООП

Классы обзор элементов класса.

Классы объявляются с помощью ключевого слова class

class <Идентификатор_класса>

{

<Переменные_экземпляра>

<Методы>

}

При создании классов используется ключевое слово new для объявления экземпляра.

Класс — это, по сути, шаблон, по которому можно создавать объекты.

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

Элементы класса можно разделить на три широкие категории:

• данные-члены,

• функции-члены;

• вложенные типы.

Данные-члены состоят из переменных-членов, констант и событий.

Функции-члены могут быть методами, конструкторами, деструкторами, свойствами индексаторами и операциями

Вложенные типы — это классы, структуры, перечисления и интерфейсы, определенные в пределах тела класса.

Методы. Синтаксический блок.

Метод представляет собой блок кода, содержащий набор инструкций. Программа инициирует выполнение операторов, вызывая метод и задавая необходимые аргументы метода. В C# все инструкции выполняются в контексте метода. Метод Main является точкой входа для каждого приложения C#.

В С# определение метода состоит из любых модификаторов (таких как спецификация доступности), типа возвращаемого значения, за которым следует имя метода, затем списка аргументов в круглых скобках и далее — тела метода в фигурных скобках:

[модификаторы] тип_возврата ИмяМетода([параметры])

{

// Тело метода

}

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

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

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

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

Переменное число аргументов метода params.

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

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

В объявлении метода после ключевого слова params дополнительные параметры не допускаются, и в объявлении метода допускается только одно ключевое слово params.

Ссылочные параметры ref и out сравнительный анализ.

Ref – используется , если требуется возвращать несколько значений переменной.

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

Конструкторы. Виды конструкторов, области применения, синтаксический блок.

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

Конструкторы экземпляров

Конструкторы экземпляров используются для создания переменных члена экземпляра, если создание объекта class осуществляется с помощью выражения new. Для инициализации класса с модификатором static или статических переменных в нестатическом классе необходимо определить статический конструктор.

Закрытые конструкторы

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

Статические конструкторы

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

доступ имя_класса(список_параметров) {

// тело конструктора

}

Наши рекомендации