Методы, которые предназначены для создания и удаления объектов называются конструкторами и деструкторами соответственно. Описание данных методов отличается от обычных тем, что в их заголовках стоят ключевые слова constructor и destructor. В качестве имен конструкторов и деструкторов в базовом классе TObject и многих других классах используются имена Create и Destroy.
Прежде чем обращаться к элементам объекта, его нужно создать с помощью конструктора. Например: ObjectA:=TOwnClass.Create;
Конструктор выделяет память для нового объекта, задает нулевые значения для порядковых полей, значение nil – для указателей и полей классов, строковые поля устанавливает пустыми, а также возвращает указатель на созданный объект.
Классы объектов определяются в секции type глобального блока. Описание класса начинается с ключевого слова class и заканчивается ключевым словом end.
Чтобы от описания класса перейти к объекту, следует выполнить соответствующее объявление в разделе var: Var math:TMatematica;
Переменная math – это ссылка на экземпляр (объект в памяти), которого физически еще не существует. Чтобы сконструировать объект (выделить память для экземпляра) класса TMatematica и связать с ним переменную math, нужно в тексте программы поместить следующий оператор: math:= TMatematica.Create;
Create – это конструктор объекта; он всегда присутствует в классе и служит для создания и инициализации экземпляров. При создании объекта в памяти выделяется место только для его полей. Методы, как и обычные процедуры и функции, помещаются в область кода программы; они могут работать с любыми экземплярами своего класса и не дублируются в памяти.
После создания объект можно использовать в программе: получать и устанавливать значения его полей, вызывать его методы. Доступ к полям и методам объекта происходит с помощью имен, например: math.x1;
Кроме того, как и при работе с записями, допустимо использование оператора with, например:
with math do
x1;
Если объект становится ненужным, он должен быть удален вызовом специального метода Destroy (освобождение памяти, занимаемой объектом), например: math.Destroy;
Destroy – это деструктор объекта; он присутствует в классе наряду с конструктором и служит для удаления объекта из динамической памяти. После вызова деструктора переменная math становится несвязанной и не должна использоваться для доступа к полям и методам уже несуществующего объекта. Чтобы отличать в программе связанные объектные переменные от несвязанных, последние следует инициализировать значением nil.
Вызов деструктора для несуществующих объектов недопустим и при выполнении программы приведет к ошибке. Чтобы избавить от лишних ошибок, в объекты ввели предопределенный метод Free, который следует вызывать вместо деструктора. Метод Free сам вызывает деструктор Destroy, но только в том случае, если значение объектной переменной не равно nil: math.Free;
После уничтожения объекта переменная math сохраняет свое значение, продолжая ссылаться на место в памяти, где объекта уже нет. Если эту переменную предполагается еще использовать, то желательно присвоить ей значение nil, чтобы программа могла проверить, существует объект или нет. Таким образом, наиболее правильная последовательность действий при уничтожении объекта должна быть следующая:
math.Free;
math:= nil;
С помощью стандартной процедуры FreeAndNil это можно сделать проще и элегантнее:
FreeAndNil(math);
Введение
Экономистов часто интересуют изменения поведения потребителя в ответ на изменения экономической среды. В курсовой работе мы рассмотрим, как реагирует выбор товара потребителем на изменение цены товара. Естественно было бы полагать, что с ростом цены на товар спрос на него упадет. Однако, можно построить такие примеры, в которых оптимальный спрос на товар уменьшается при падении его цены. Товар, обладающий этим свойством, называют товаром Гиффена.
Товары Гиффена весьма специфичны и представляют в первую очередь теоретический интерес, однако встречаются и другие ситуации, в которых изменения цен могут иметь "ненормальные" следствия, на поверку оказывающиеся не столь уж неразумными.
В курсовой работе так же рассмотрим, каким образом изменение (например, снижение) цены товара оказывает влияние на объем спроса потребителя на этот товар при неизменности цен прочих товаров и доходов потребителя для того, что бы подробно объяснить значение уравнения Слуцкого.
Уравнение Слуцкого — это уравнение, смысл которого состоит в том, что изменение спроса на некоторый товар при повышении или снижении его цены складывается из влияния непосредственного изменения спроса и косвенного влияния в результате переключения спроса на другие товары. Данное уравнение отражает суть эффекта замещения в микроэкономике.