Создание объектов

Как уже говорилось в главе 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 сделает это автоматически при завершении работы программы. Более того, в С# вообще нет средств освобождения динамической памяти!

Предлагаю ознакомиться с аналогичными статьями: