AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.07.2008, 00:18   #6  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от NNB Посмотреть сообщение
Стало любопытно умеет init() класса того, что не умеет new()
Не сочтите за снобизм, но напомнило Joel on Software, Назад, к основам:
Цитата:
Я придерживаюсь мнения, что студенты, начинающие изучать программирование, должны начинать с начала, использовать C и подниматься вверх от процессора. Мне противно, как часто программа обучения строится на посылке, что Java представляет собой хороший язык для того, чтобы начинать программировать, потому что это так "просто" и не нужно отвлекаться на эти скучные детали про строки и выделение памяти, и сразу можно изучить кульные ООП-штучки которые помогут сделать ваши большие программы так восхитительно модульными.
Так вот, основы применительно к данной теме состоят в том, что при динамическом создании объекта надо, видите ли, выделять для него память. Именно этим и занимается, кроме прочего, метод new() в Аксапте, даже если вы его не перекрываете и ничего явно не инициализируете. При вызове этого метода, кроме прочего, происходит самое что ни на есть физическое выделение памяти для объекта (экземпляра класса, как угодно); другое дело, что Аксапта скрывает такие подробности, потому что обеспечивает автоматическое управление памятью, и начинает, видимо, казаться, что создать объект и инициализировать его - это одно и то же. Ан-нет... И еще обратите внимание, что метод new() вызывается для класса (т.е. типа данных), в то время как init() вызывается для объекта (экземпляра класса). Наглядно - даже, наврено, слишком наглядно - это все можно наблюдать в отладчике: если следить за переменной, которой присваивается ссылка на создаваемый объект, то пока вы не выйдите успешно из метода new(), ссылка эта показывается пустой, а как только объект создан, она уже показывается как ссылающаяся на экземпляр определенного класса со всеми его внутренними переменными.
В общем-то, все ключевые слова тут уже упоминали; если вы прежде изучали ООП, то разница между конструктором класса и методом класса должна вам все объяснить.
Теги
init, crm2011

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Solutions Monkey: EP Page Life Cycle Blog bot DAX Blogs 0 18.02.2009 08:05
Не удаётся правильно настроить DataSource через метод init Dronas DAX: Программирование 1 08.10.2007 09:10
Два Dstasource с Range в init() PMS DAX: Программирование 7 28.10.2005 09:54
Метод Init на форме. NJD DAX: Программирование 1 25.08.2004 17:30
диалоговое окно в init (e) Report (a) Natasha DAX: Программирование 8 05.03.2003 16:42

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 06:15.