Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Параметризированные конструкторыСодержание книги Поиск на нашем сайте В предыдущем примере использовался конструктор без параметров. В некоторых случаях этого оказывается достаточно, но зачастую конструктор, должен принимать один или несколько параметров. В конструктор параметры вводятся таким же образом, как и в метод. Для этого достаточно объявить их в скобках после имени конструктора. Ниже приведен пример применения параметризированного конструктора MyClass. Листинг 6.9 // Параметризированный конструктор.
using System;
class MyClass { public int x;
public MyClass(int i) { x = i; } }
class ParmConsDemo { static void Main() { MyClass t1 = new MyClass(10); MyClass t2 = new MyClass(88);
Console.WriteLine(t1.x + " " + t2.x); } } При выполнении этого кода получается следующий результат. 10 88 В данном варианте конструктора MyClass() определен параметр i, с помощью которого инициализируется переменная экземпляра х. Поэтому при выполнении следующей строки кода: MyClass t1 = new MyClass(10); параметру i передается значение, которое затем присваивается переменной х. Добавление конструктора в класс Building Класс Building можно усовершенствовать, добавив в него конструктор, автоматически инициализирующий поля Floors, Area и Occupants при создании объекта. Обратите особое внимание на то, как создаются объекты класса Building. Листинг 6.10 // Добавить конструктор в класс Building.
using System;
class Building { public int Floors; // количество этажей public int Area; // общая площадь здания public int Occupants; // количество жильцов
// Параметризированный конструктор для класса Building. public Building(int f, int a, int o) { Floors = f; Area = a; Occupants = o; }
// Возвратить площадь на одного человека. public int AreaPerPerson() { return Area / Occupants; }
// Возвратить максимальное количество человек, занимающих здание // исходя из заданной минимальной площади на одного человека. public int MaxOccupant(int minArea) { return Area / minArea; } }
// Использовать параметризированный конструктор класса Building. class BuildingDemo { static void Main() { Building house = new Building(2, 2500, 4); Building office = new Building(3, 4200, 25);
Console.WriteLine("Максимальное количество человек в доме, \n" + "если на каждого должно приходиться " + 300 + "кв. футов: " + house.MaxOccupant(300));
Console.WriteLine("Максимальное количество человек " + "в учреждении, \n" + 300 + "кв. футов: " + office.MaxOccupant(300)); } } Результат выполнения этой программы оказывается таким же, как и в предыдущей ее версии. Оба объекта, house и office, были инициализированы конструктором Building() при их создании в соответствии с параметрами, указанными в этом конструкторе. Например, в строке Building house = new Building(2, 2500, 4); конструктору Building() передаются значения 2, 2500 и 4 при создании нового объекта. Следовательно, в копиях переменных экземпляра Floors, Area и Occupants объекта house будут храниться значения 2, 2500 и 4 соответственно. Еще раз об операторе new Теперь, когда вы ближе ознакомились с классами и их конструкторами, вернемся к оператору new, чтобы рассмотреть его более подробно. В отношении классов общая форма оператора new такова: new имя_класса (список_аргументов) где имя_класса обозначает имя класса, реализуемого в виде экземпляра его объекта. А имя_класса с последующими скобками обозначает конструктор этого класса. Если в классе не определен его собственный конструктор, то в операторе new будет использован конструктор, предоставляемый в C# по умолчанию. Следовательно, оператор new может быть использован для создания объекта, относящегося к классу любого типа. Оперативная память не бесконечна, и поэтому вполне возможно, что оператору new не удастся распределить память для объекта из-за нехватки имеющейся оперативной памяти. В этом случае возникает исключительная ситуация во время выполнения. В примерах программ, приведенных в этой книге, ситуация, связанная с исчерпанием оперативной памяти, не учитывается, но при написании реальных программ такую возможность, вероятно, придется принимать во внимание.
|
||
|
Последнее изменение этой страницы: 2016-12-27; просмотров: 355; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.198 (0.008 с.) |