Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Конструкторы экземпляра класса






Конструкторы экземпляров используются для создания переменных члена экземпляра, если создание объекта class осуществляется с помощью выражения new. Для инициализации класса с модификатором static или статических переменных в нестатическом классе необходимо определить статический конструктор В следующем примере показан конструктор экземпляра.

class CoOrds

{

public int x, y;

 

// constructor

public CoOrds()

{

x = 0;

y = 0;

}

}

 

Примечание
Следует пояснить, что этот класс содержит открытые поля. Использование открытых полей не рекомендуется использовать на практике, поскольку в этом случае любой метод в любом месте программы получает неограниченный и неконтролируемый доступ к внутренней работе объекта. Члены данных обычно должны быть закрытыми, а доступ к ним должен осуществляться только посредством методов и свойства класса.

Этот конструктор экземпляра вызывается каждый раз при создании объекта на базе класса CoOrds. Такой конструктор без аргументов называется конструктором по умолчанию. Зачастую такие конструкторы используются для предоставления дополнительных конструкторов. Например, можно добавить конструктор в класс CoOrds, позволяющий указывать начальные значения для членов данных:

public CoOrds(int x, int y)

{

this.x = x;

this.y = y;

}

Это позволяет создавать объекты CoOrd с начальными значениями по умолчанию или с другими начальными значениями:

CoOrds p1 = new CoOrds();

CoOrds p2 = new CoOrds(5, 3);

 

Если класс не содержит конструктор, автоматически создается конструктор по умолчанию и для инициализации полей объекта используются значения по умолчанию. Например, int инициализируется значением 0. Следовательно, поскольку конструктор по умолчанию класса CoOrds инициализирует все члены данных с нулевыми значениями, его можно удалить, при этом порядок работы класса не изменится. Конструкторы экземпляров также можно использовать для вызова конструкторов экземпляров базового класса. Конструктор класса может вызвать конструктор базового класса с помощью инициализатора:

class Circle: Shape

{

public Circle(double radius)

: base(radius, 0)

{

}

}

 

В этом примере класс Circle передает значения радиуса и высоты конструктору, предоставленному классом Shape, для которого класс Circle является производным.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.