Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_200309.doc
Скачиваний:
41
Добавлен:
24.12.2018
Размер:
4.38 Mб
Скачать

Статические методы.

Известно, что исполнение программы в среде .NET начинается с вызова метода Main(). Среда исполнения не создает никаких объектов, поэтому Main() должен вызы­ваться независимо от них. Объявление метода Main() статическим указывает, что он принадлежит классу. Тем самым, среда исполнения вызывает Main () непосредственно через имя класса.

Статический метод можно вызвать тремя способами:

  1. Из объекта класса, которому он принадлежит. В этом случае префикс (имя класса или объекта) не нужен.

class myClass

{

public static void Average(…)

{

….

}

…Average()…

}

. I

  1. Извне данного класса.

При этом существуют две возможности:

    1. Если существует объект класса, где метод определен, вызов последнего состоит из имени объекта, операции уточнения и имени метода:

myClass A = new myClass();

…..

A.Average(…)

    1. Независимо от существования объектов класса, а котором метод определен, он вызывается для класса посредством операции уточнения:

...myClass.Average(. ..)...

В вызоае метода предпочтительнее использовать имя класса (myClass.Average(...)), а не объекта A.Average(...) поскольку первый вариант четко указывает, что вызывается статический метод.

Конструкторы

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

Синтаксис языка С# при создании объекта с ключевым словом new требует исполь­зовать скобки после имени класса, например:

Car myCar = new Car();

myCar является идентификатором конструктора. Стоит отметить, что идентификатор конструктора должен быть таким же, как идентификатор его класса. Скажем, конструктор класса Car также должен называться Car. Конструктор экземпляра не возвращает значения, поэтому тип возвращаемого зна­чения не указывается (не используется даже ключевое слово void).

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

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

Чтобы включить конструктор в класс, необходимо разместить его внутри блока опреде­ления класса вместе с другими элементами.

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

Аналогично тому, как в заголовке обычного метода, в объявлении конструктора экземпляра используются круглые скобки, включающие список формальных параметров. Значения аргументов передаются этим параметрам во время создания объекта с помощью ключевого слова new.

Пример

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]