Building house = new Building();

Building office = new BuildingO;

int areaPP; // площадь на одного человека

// Присвоить значения полям в объекте house, house.Occupants = 4; house.Area = 2500; house.Floors = 2;

// Присвоить значения полям в объекте office, office.Occupants = 25; office.Area = 4200; office.Floors = 3;

// Вычислить площадь на одного человека в жилом доме. areaPP = house.Area / house.Occupants;

Console.WriteLine('Дом имеет: ' +

house.Floors + ' этажап ' + house.Occupants + ' жильцап ' + house.Area +

' кв. футов общей площади, из нихп ' + areaPP + ' приходится на одного человека');

// Вычислить площадь на одного человека в учреждении. areaPP = office.Area / office.Occupants;

Console.WriteLine('Учреждение имеет:    '    +

office.Floors + ' этажап ' +

office.Occupants + ' работниковп ' +

office.Area +

' кв. футов общей площади, из нихп ' + areaPP + ' приходится на одного человека');

}

}

Ниже приведен результат выполнения этой программы.

Дом имеет:

2 этажа

4 жильца

2500 кв. футов общей площади, из них 625 приходится на одного человека

Учреждение имеет:

3 этажа 25 работников

4200 кв. фу^ов общей площади, из них 168 приходится на одного человека

Как видите, данные из объекта house полностью отделены от данных, содержащихся в объекте office. Эта ситуация наглядно показана на рис. 6.1.

Рис. 6.1. Переменные экземпляра одного объекта полностью отделены от переменных экземпляра другого объекта

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

В предыдущих примерах программ для объявления объекта типа Building использовалась следующая строка кода.

Building house = new Building();

Эта строка объявления выполняет три функции. Во-первых, объявляется переменная house, относящаяся к типу класса Building. Сама эта переменная не является объектом, а лишь переменной, которая может ссылаться на объект. Во-вторых, создается конкретная, физическая, копия объекта. Это делается с помощью оператора new. И наконец, переменной house присваивается ссылка на данный объект. Таким образом, после выполнения анализируемой строки объявленная переменная house ссылается на объект типа Building.

Оператор new динамически (т.е. во время выполнения) распределяет память для объекта и возвращает ссылку на него, которая затем сохраняется в переменной. Следовательно, в C# для объектов всех классов должна быть динамически распределена память.

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

Building house; // объявить ссылку на объект

house = new Building(); // распределить память для объекта типа Building

В первой строке объявляется переменная house в виде ссылки на объект типа Building. Следовательно, house — это переменная, которая может ссылаться на объект, хотя сама она не

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату