Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Как устроены классы?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.65 MB
Время: 0.123 c
15-1270198375
Девелопер
2010-04-02 12:52
2010.08.27
WMware WorkStation - невозможно работать по сети с хост-машиной.


3-1241791675
Rimdus
2009-05-08 18:07
2010.08.27
MSDE использование osql.exe


2-1274136222
yagluboko
2010-05-18 02:43
2010.08.27
ошибка при выводе матрицы на экран


11-1221408343
dron9999
2008-09-14 20:05
2010.08.27
не устанавливается компонент ServerSocket&KlientSocket


15-1268379319
DevilDevil
2010-03-12 10:35
2010.08.27
XML Schema. Существует ли библиотека ?