Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1269807638
{Vanek}
2010-03-29 00:20
2010.08.27
Датчик


2-1267596769
ruslan_as
2010-03-03 09:12
2010.08.27
Как в Image отобразить участок IPG файла по координатам


11-1221028023
GradeMax
2008-09-10 10:27
2010.08.27
Как при помощи KOL работать с почтовым ящиком?


15-1274270972
Cerberus
2010-05-19 16:09
2010.08.27
Практика в EPAM.


15-1271536202
Юрий
2010-04-18 00:30
2010.08.27
С днем рождения ! 18 апреля 2010 воскресенье





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский