Как уже говорилось в главе 2, в С#, как и в любом другом языке, поддерживающем объектно-ориентированное программирование (ООП), разделяются понятия «класс» и «объект». Класс — это всего лишь тип данных, то есть «схема», по которой изготавливаются объекты — реальные экземпляры класса. Класс предоставляет компилятору все необходимые сведения для создания объекта данного класса. В то же время в реальной программе могут действовать только объекты.
Для создания объекта каждый класс автоматически снабжается одноименным методом без параметров, который называется конструктором по умолчанию. Задача конструктора заключается в выделении объекту динамической памяти, необходимой для размещения всех его полей. При обращении к конструктору используется зарезервированное слово new. В листинге 3.1 показаны возможные варианты создания объектов.
Листинг 3.1. Создание объектов с помощью умалчиваемого конструктора
// Объекты класса HelloClass будут созданы в методе Main()
using System;
class HelloClass
{
public static void Main()
{
// Новый объект можно создать в одной строке:
HelloClass hc1 = new HelloClass();
// ... или в двух:
HelloClass hc2;
hc2 = new HelloClass();
}
}
В нашем случае созданы два объекта (hc1 и hc2) класса HelloClass. Умалчиваемый конструктор не только размещает объекты в динамической памяти (управляемой куче), но и инициализирует их поля, помещая в них умалчиваемое значение 0.
Обратите внимание: в программе не освобождается динамическая память, зарезервированная умалчиваемым конструктором — в этом нет необходимости, так как сборщик мусора CLR сделает это автоматически при завершении работы программы. Более того, в С# вообще нет средств освобождения динамической памяти!
0 коммент.:
Отправить комментарий