Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизКак устроены классы? Найти похожие ветки
← →
sniknik © (2010-05-06 23:25) [40]> вот в java и в C# классы тоже динамически создаются, однако не вызывают такого кода, потому что указателей нету.
а записи там есть? может и путаться не в чем?
← →
Игорь Шевченко © (2010-05-06 23:31) [41]sniknik © (06.05.10 23:25) [40]
насчет java не знаю, а в C# есть, безусловно, зовутся struct
← →
Плохиш © (2010-05-06 23:44) [42]
> вот в java и в C# классы тоже динамически создаются
a static?
← →
Сергей М. © (2010-05-07 00:09) [43]
> Конформист (06.05.10 20:59) [39]
> Delphi тем хорош что можно
> писать рабочее коммерческое ПО, даже особо не понимая что
> ты пишешь.
Формошлепством это называют)
А формошлеп всегда рисковал и рискует быть крепко поколоченым Заказчиком, когда из-за этого самого "непонимания что ты пишешь" у Заказчика, заплатившего деньги за сей продукт (и возможно даже немалые), рано или поздно возникнут проблемы.
← →
Конформист (2010-05-07 00:51) [44]
> Сергей М. © (07.05.10 00:09) [43]
>
> Формошлепством это называют)
Ну в общем-то да. Только обычно иполнители часто нанимают студентов формошлёпов для удешевления процесса разработки. А проблемы начинаются не у конкретного разработчика, а у фирмы, весь бизнесплан которой строится на "дешевле чем у конкурентов".
← →
Игорь Шевченко © (2010-05-07 00:58) [45]Конформист (07.05.10 00:51) [44]
> Только обычно иполнители часто нанимают студентов формошлёпов
> для удешевления процесса разработки
По моему опыту, это удорожание процесса разработки раза в полтора минимум.
← →
Германн © (2010-05-07 01:07) [46]
> По моему опыту, это удорожание процесса разработки раза
> в полтора минимум.
И нехилый геморрой у других сотрудников той же конторы.
← →
Конформист (2010-05-07 02:59) [47]
> Игорь Шевченко © (07.05.10 00:58) [45]
>
> По моему опыту, это удорожание процесса разработки раза
> в полтора минимум.
Все зависит от необходимости функционирования данного ПО.
← →
Германн © (2010-05-07 03:05) [48]
> Все зависит от необходимости функционирования данного ПО.
Нет. Всё упирается (в конечном итоге) в техподдержку.
← →
Владислав © (2010-05-07 08:10) [49]
> Компоненты суть объекты, т.е., экземпляры классов,
> потомки TObject.
Вот говорят так, и на начальном этапе прививают неверное понимание.
Компоненты - суть классы, потомки TComponent, ибо не все потомки TObject - это компоненты.
А фразы "экземляры классов" и "потомки TObject" суть вообще разные вещи.
← →
oxffff © (2010-05-07 08:48) [50]
> Как устроены классы? [D7, 2000, XP]
Одно из представлений классов полиморфном лямбда исчислении - это запись из начальных значений и метода который транслирует объект из открытого вида в закрытый(экзистенциальный тип).
Объект представляется как запись из ссылки на экземпляр и метода, который возвращает запись с методами этого объекта(фактически это есть реализация полиморфизма).
← →
oxffff © (2010-05-07 08:49) [51]Еще есть объектое исчисление, где присутствует в явном виде понятие объекта.
← →
Leonid Troyanovsky © (2010-05-07 08:55) [52]
> Владислав © (07.05.10 08:10) [49]
> Компоненты - суть классы, потомки TComponent, ибо не все
> потомки TObject - это компоненты.
> А фразы "экземляры классов" и "потомки TObject" суть вообще
> разные вещи.
Компонент (К) есть экземпляр класса TComponent или его потомка,
Класс TComponent потомок класса TObject.
Т.е.:
1. К есть экземпляр класса потомка TObject, т.е. объект {суть объект}
2. Любой класс компонента есть потомок класса TObject.
{потомки TObject}.
Не вижу здесь "все потомки TObject - это компоненты".
А "экземляры классов" и "потомки TObject" и не объединены.
И, во-ще, стоит ли отрываться от контекста:
> Нам даже не сказали что TForm, TLabel, TButton, итд являются
> классами... Называли их просто "стандартными компонентами".
> ..((
IMHO, дидактические приемы можно применять и более полезно,
направив живительную струю сокровенного знания нуждающимся.
--
Regards, LVT.
← →
Владислав © (2010-05-07 09:23) [53]
> Leonid Troyanovsky © (07.05.10 08:55) [52]
Борланд, Эмбаркадеро не совсем с Вами согласны:
"Components and Classes
Because components are classes, component writers work with objects at a different level from application developers. Creating new components requires that you derive new classes."
Так что еще раз, компонент - это класс, а не экземпляр класса.
И еще раз, первоначальная фраза звучала так: "Компоненты суть объекты, т.е., экземпляры классов, потомки TObject."
Как Вам такая цепочка рассуждений:
"Берем класс TStream. Что такое экземпляр этого класса? TStream.Create()? Тогда да, это уже не класс, а экземпляр класса. Но, вроде бы, он потомок TObject? Но потомком TObject является TStream, а не TStream.Create. Это же разные вещи? Но впрочем это мелочи. Раз он потомок TObject, значит это компонент."
"Где смысл, где логика..." (С)
> IMHO, дидактические приемы можно применять и более полезно,
> направив живительную струю сокровенного знания нуждающимся.
Согласен, а их, приемы, нужно применять не только полезно, но и правильно.
← →
Leonid Troyanovsky © (2010-05-07 09:37) [54]
> Владислав © (07.05.10 09:23) [53]
> Так что еще раз, компонент - это класс, а не экземпляр класса.
Далекие от жизни суждения, здесь обсуждались вовсе не проблемы
писателей компонентов.
Здесь компонент - экземпляр класса TComponent или его потомков.
То, что студентов научили бросать на форму, но, возможно, забыли
напомнить про их объективную сущность.
> Как Вам такая цепочка рассуждений:
Не понимаю этих попыток подписать меня на какие-то левые суждения.
Чего я непонятного сказал в трех своих постах?
--
Regards, LVT.
← →
Владислав © (2010-05-07 09:41) [55]
> Leonid Troyanovsky © (07.05.10 09:37) [54]
> ...
> Чего я непонятного сказал в трех своих постах?
Я уже указал на неточность Вашей фразы выше.
← →
oxffff © (2010-05-07 09:42) [56]Удалено модератором
← →
Anatoly Podgoretsky © (2010-05-07 09:52) [57]> Владислав (07.05.2010 09:23:53) [53]
И в той же строке "work with objects"
← →
Владислав © (2010-05-07 09:55) [58]
> Anatoly Podgoretsky © (07.05.10 09:52) [57]
>
> И в той же строке "work with objects"
"Objects, Components, and Controls
...
Every object (class) inherits from TObject.
..."
Ибо синонимы.
← →
Leonid Troyanovsky © (2010-05-07 09:57) [59]
> Владислав © (07.05.10 09:41) [55]
> Я уже указал на неточность Вашей фразы выше.
Аналогично, выше указывал на неточность оных указаний,
на враках не пойман.
Ну, а правильность и полезность тех или иных дидактических
приемов предлагаю проверить в песочнице. Жаждущие ждут
живительную струю: http://www.delphimaster.ru/cgi-bin/forum.pl?n=18
--
Regards, LVT.
← →
Anatoly Podgoretsky © (2010-05-07 10:05) [60]> Владислав (07.05.2010 09:55:58) [58]
А вот это Every object (class) inherits from TObject совсем умиляет.
Так что плюнь на дидактику и эту документацию, она не выдерживает критики.
Это какой то немецкий порнофильм - смешались в кучу кони, люди.
← →
Игорь Шевченко © (2010-05-07 11:56) [61]
> А вот это Every object (class) inherits from TObject совсем
> умиляет.
а ты вызови inheritsFrom :)
← →
GrayFace © (2010-05-07 13:32) [62]Студент_404 (06.05.10 13:18) [17]
Вот на "чистом апи" я прекрасно могу всё делать... Я не знаю как это в класс превращать...
В 2 словах - в оконной процедуре достаешь откуда-нибудь ссылку на объект и вызываешь у него метод обработки сообщения. Откуда достаешь - самое простое - в GWL_USERDATA, можно в классе хранить, а у VCL функция CreateObjectInstance пишет прямо код мини-процедурки с этой ссылкой.
Какой метод - любой. В лоб - просто метод с case-ом по Msg. Но в VCL все гораздо лучше. Во-первых, метод-обработчик - свойство(property). Он вызывает в конечном счете Dispatch - это пециально сделанный механизм - Dispatch для сообщения вызывает соответствующий динамический методод (объявленный в классе с пометкой [b]message[/b] и номером сообщения) или DefaultHandler.
← →
Palladin © (2010-05-07 13:35) [63]в классе обычно до 20 парт, 1 учительский стол и 41, или менее, стульев
← →
turbouser © (2010-05-07 13:39) [64]
> Palladin © (07.05.10 13:35) [63]
Еще доска, мел, окна, двери..
← →
Юрий Зотов © (2010-05-07 15:16) [65]> Конформист (06.05.10 19:01) [31]
> У меня на полное изучение VCL изнутри ушло три месяца.
У меня на неполное изучение VCL изнутри ушло лет 10. И до сих пор я знаю VCL изнутри неполностью - хотя на вполне профессиональном уровне написал более сотни компонентов, множество других классов, кучу редакторов свойств, редакторов компонентов и экспертов IDE.
Следовательно - или Вы гений, или я дурак, или что-то здесь преувеличено.
:o)
← →
Игорь Шевченко © (2010-05-07 15:28) [66]Юрий Зотов © (07.05.10 15:16) [65]
> У меня на неполное изучение VCL изнутри ушло лет 10. И до
> сих пор я знаю VCL изнутри неполностью
Аналогичная фигня, только лет побольше..
← →
Владислав © (2010-05-07 16:22) [67]
> Leonid Troyanovsky © (07.05.10 09:57) [59]
Леонид, прочитайте еще раз [49] и [55].
Никто не пытался ловить Вас "на враках".
Спасибо, что хоть послали меня на высшем уровне вежливости! :)
> Anatoly Podgoretsky © (07.05.10 10:05) [60]
Анатолий, а что удивительного? Вот:
1. "Classes and Objects
...
Objects are dynamically allocated blocks of memory whose structure is determined by their class type. Each object has a unique copy of every field defined in the class, but all instances of a class share the same methods."
Речь идет о экземпляре класса (instance).
2. Цитата, которую привели Вы: Every object (class) inherits from TObject
Речь идет о классе (class).
Другой контекст, и смысл "object" изменился. Еще используется "object type".
Ну употребляют так "object".
Я то в [49] речь вел не об объектах, а о том, что класс (class) и экземпляр класса (instance) - разные вещи. Только почему на это так Леонид отреагировал и обиделся, я так и не понял.
← →
Leonid Troyanovsky © (2010-05-07 17:06) [68]
> Владислав © (07.05.10 16:22) [67]
> Леонид, прочитайте еще раз [49] и [55].
Перечитал, остался при своих.
> Спасибо, что хоть послали меня на высшем уровне вежливости!
> :)
Дык, не посылал же, только пригласил ;)
> Я то в [49] речь вел не об объектах, а о том, что класс
> (class) и экземпляр класса (instance) - разные вещи.
ClassType.InheritsFrom vs InheritsFrom
Что сова о пень, что пень о сову - все равно, не жить сове.
TClass = class of TObject - тот, еще, бином Ньютона.
> почему на это так Леонид отреагировал и обиделся
А я, вроде бы, и не обижался :)
--
Regards, LVT.
← →
Владислав © (2010-05-07 17:59) [69]
> Leonid Troyanovsky © (07.05.10 17:06) [68]
> Перечитал, остался при своих.
Ну тогда, даже принимая во внимание дидактическое употребление, в корне с Вами не согласен. Так что тоже останусь при своих.
> ClassType.InheritsFrom vs InheritsFrom
> Что сова о пень, что пень о сову - все равно, не жить сове.
>
> TClass = class of TObject - тот, еще, бином Ньютона.
Не дошла до меня Ваша тонкая мысль. Что сказать хотели?
> А я, вроде бы, и не обижался :)
Это хорошо! Я очень рад! :)
← →
Leonid Troyanovsky © (2010-05-07 18:23) [70]
> Владислав © (07.05.10 17:59) [69]
> Не дошла до меня Ваша тонкая мысль. Что сказать хотели?
Хотел сообщить о смерти совы.
Она не выживет. Sorry.
--
Regards, LVT.
← →
Студент_404 (2010-05-13 12:48) [71]
> Leonid Troyanovsky © (07.05.10 08:55) [52]
>
> И, во-ще, стоит ли отрываться от контекста:
> > Нам даже не сказали что TForm, TLabel, TButton, итд являются
> > классами... Называли их просто "стандартными компонентами".
> > ..((
>
> IMHO, дидактические приемы можно применять и более полезно,
> направив живительную струю сокровенного знания нуждающимся.
Извините, но что-то совсем не понял что вы имели ввиду... о_о
Нам просто показали основные методы и научили ими пользоваться...
А об устройстве решили не упоминать... Или может не успели (нам время на программу урезали)...
> Григорьев Антон © (06.05.10 19:47) [35]
Спасибо!)
> Игорь Шевченко © (06.05.10 20:59) [38]
>
> Принципиально класс - это таки запись с методами :)
Хм. А как работают записи с методами? На чистом API в Делфи 7 нельзя их создать?
И если создать несколько "переменных" такого типа - один и тот же метод в разных переменных будет работать со своим набором переменных?
Как такое сделать?(
← →
Palladin © (2010-05-13 12:55) [72]
> На чистом API в Делфи 7
ну я же говорил, в классе обычно до 20 парт, 1 учительский стол и 41, или менее, стульев
turbouser еще дополнил про доску, мел, окна, двери..
вот тебе прямо туда надо
Самое интересное, что почему-то никто не понял, что сам вопрос "Как устроены классы?" вообще ответа не имеет. Зато полезли в какие-то дебри, буквоедством заниматься...
← →
Студент_404 (2010-05-13 13:03) [73]
> вот тебе прямо туда надо
Ну а я где? =\
Кстати я писал уже:
> Студент_404 (06.05.10 13:18) [17]
>
> у нас вместо основных предметов по программированию ввели шольную программу истории, биологии, философии, социологии
Что я сделаю с учебной программой? =\\
← →
Leonid Troyanovsky © (2010-05-13 13:03) [74]
> Студент_404 (13.05.10 12:48) [71]
> Извините, но что-то совсем не понял что вы имели ввиду..
Я адресовал только [20]. Тайна таймера уже постигнута?
Остальное к теме не относится, это о педагогических приемах.
--
Regards, LVT.
← →
Студент_404 (2010-05-13 13:07) [75]Да, исходник TTimer самое что надо...)
Спасибо...))
← →
Игорь Шевченко © (2010-05-13 13:15) [76]
> Хм. А как работают записи с методами? На чистом API в Делфи
> 7 нельзя их создать?
> И если создать несколько "переменных" такого типа - один
> и тот же метод в разных переменных будет работать со своим
> набором переменных?
> Как такое сделать?(
А книги по ООП не судьба читать ? Ну или в тырнете поискать что-то на тему. Лекции по основам ООП на этом сайте - услуга платная
← →
Anatoly Podgoretsky © (2010-05-13 14:02) [77]> Игорь Шевченко (13.05.2010 13:15:16) [76]
Платная если вслух и особенно с выражением.
← →
Игорь Шевченко © (2010-05-13 15:02) [78]Anatoly Podgoretsky © (13.05.10 14:02) [77]
Нет, даже опубликование в письменном виде. А то, что ты имеешь в виду, это вообще запредельные деньги.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.62 MB
Время: 0.11 c