Толстый учебник по MaxScript: http://books.google.ru/books/about/3ds_Max_MAXScript_Essentials.html?id=XyK7WLYA<wbr />9qAC&redir_esc=y (на английском).
Тут тоже все описано: http://www.kxcad.net/autodesk/Autodesk_MAXScript_Reference_9/ (как "создавать функции" и т.п. точно).
И тут тоже: http://wiki.cgsociety.org/index.php/MAXScript
Но не так глобально он отличается от других языков программирования. Я думаю, не стоит лезть в какой-то язык, ниразу не подходящий для обучения и пытаться писать на нем первые программы. Возьми любой другой язык с нормальным отладчиком и учебниками. Набей шишек и вернись к MaxScript.
Деструктор - это "напарник" конструктора. Когда необходимо создать объект определенного класса, вызывается конструктор. В конструкторе происходит инициализация объекта. Для хранения данных обюъекта и его методов опреационной системе необходимо выделить память. А вот, когда объект не нужен, его необходимо будет убрать из памяти, чтобы не образовалось утечек памяти! Вот для уничтожения объекта и вызывается деструктор. В некоторых языках программирования деструктор вызывается автоматически. В фоновом режиме работает так называемый "уборщик мусора". Этот уборщик уничтожает ненужные объекты. Ненужность объекта уборщик мусора определяет по количеству ссылок на объект. Если ссылок на объект нет, объект можно удалить. Уборщики мусора активно работают в Java и C#. В C++ деструктор придется вызывать, так как автоматического сборщика мусора в этом языке нет. Если деструктор не вызывать, то ничего страшного не случиться только до поры до времени. Например, если некий объект определенного класса работает со структурами данных, которые в совокупности занимают несколько мегабайт. И если, например, создать несколько объектов данного класса, а потом не вызвать деструктор, то утечки памяти в несколько десятов или сотен мегабайт будут гарантированы!
Если это тест - то правильный ответ - наследование, полиморфизм, инкапсуляция и абстракция.
Но на самом деле тут можно порассуждать:
- к полиморфизму по определению можно отнести работу с void* или чем-то типа union (из С++). А это явно не ООП.
- инкапсуляция - это вообще базовый механизм. Его реализуют, например, модули (поддерживаемые в самых разных парадигмах, в том числе, предшествующих ООП).
- абстракция - еще более общее понятие чем инкапсуляция. Ну например, открываешь ты файл - значит используешь абстракцию, которая предоставляется операционной системой. Не важно ООП-язык используешь или нет.
Но если вы проходите тест по курсу ООП - то правильным ответом будут все эти механизмы, в описанные тут детали мало кто погружается.
В процедурном стиле вы оперируете процедурами. Самописными или библиотечными.
В ООП вы работаете с обьектами. Обьекты описываются сложнее чем процедуры. Но возможностей больше.
Экземпляр класса — это конкретный объект данного класса, за которым закрепляется определенная память. А класс - это только описание свойств и способов выполнения над его объектами различных операций (методов). Каждый класс может иметь одновременно несколько объектов (экземпляров), каждый из которых имеет одни и те же свойства и методы.