Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Создание и использование объектов



Первый шаг при создании объектов – объявление одной или нескольких объектных переменных. Аналогично обычным переменным объектные переменные можно создавать либо статически, либо динамически. Оба способа создания переменных реализованы только в С++. В остальных языках используется только динамическое создание объектов. Объекты адресуются своими указателями, хотя явно этого не видно, т.к. разрешено только сравнивать указатели на равенство и присваивать указателям допустимые значения.

Рассмотрим сначала объявление и создание объектов в С++.

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

Circle Circ1, Circ2;

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

Circle Circ3 (50, 50, 20);

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

Circ1.Show (); // отобразить объект Circ1

Circ3.MoveTo (100, 100); // переместить объект Circ3

int r = Circ3.GetR (); // запросить радиус объекта Circ3

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

Circle *pCirc1;

При обработке этой строки компилятор выделяет память только для хранения адреса будущего объекта. После этого записывается строка для динамического создания объекта, причем для выделения памяти используется стандартная функция new, a для инициализации выделенной области явно вызывается один из конструкторов класса:

pCirc1 = new Circle ();

При необходимости объявление объектной переменной и вызов конструктора можно объединить в одной строке:

Circle *pCirc1 = new Circle ();

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

pCircle -> Show (); // отобразить

pCircle -> MoveTo (200, 200); // переместить

int Rad = pCirc2 -> GetRad (); // получить радиус

В языках Java и C# предусмотрено только динамическое создание объектов. Объекты неявно адресуются своими указателями. Объявление объектной переменной и создание объекта может быть либо разделено

Circle Circ1;

Circ1 = new Circle ();

либо объединено в одну строку:

Circle Circ2 = new Circle (100, 100, 50);

После создания объекта можно вызывать его методы:

Circ2.Show ();

Circ2.MoveTo (200, 200);

Rad = Circ2.GetRad ();

В языке Delphi Pascal объекты также можно создавать только динамически и адресовать своими указателями:

var Circ1: TCircle; // объявление объекта-окружности

Circs: array [1..100] of TCircle; // объявление массива

// объектных указателей

Для создания объекта необходимо указать имя класса и вызвать один из реализованных конструкторов:

Circ1:= TCircle.Create;

for i:= 1 to 100 do Circs[i]:= TCircle.Create (параметры);

Обращение к методам выполняется следующим образом:

Circ1.Show;

Circ1.MoveTo (200, 200);

for i:= 1 to 100 do Circs[i].Show;

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





Дата публикования: 2014-11-02; Прочитано: 855 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...