В чём отличие public от published
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.214] |
|
|
ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
В чём отличие public от published
|
Сообщ.
#1
,
|
|
|
|
Объясните subj пожалуйста!
|
|
Сообщ.
#2
,
|
|
|
|
Цитата Любой вновь создаваемый класс может содержать секции (разделы), определяемые зарезервированными словами published (опубликованные), private (закрытые), protected (защищенные), public (доступные) и automated (автоматизированные). Внутри каждой секции вначале определяются поля, а затем - методы и свойства. Секции определяют области видимости элементов описания класса. Секция public не накладывает ограничений на область видимости перечисляемых в ней полей, методов и свойств - их можно вызывать в любом другом модуле программы. Секция published также не ограничивает область видимости, однако в ней перечисляются свойства, которые должны быть доступны не только на этапе исполнения, но и на этапе конструирования программы (т. е. в окне Инспектора объектов). Секция published используется только при разработке нестандартных компонентов. Замечу, что среда Delphi помещает описания компонентов, вставленных в форму, в специальную секцию без названия, которая располагается сразу за заголовком класса и продолжается до первой объявленной секции. Эта секция - published. Программисту не следует помещать в нее собственные элементы описания класса или удалять из нее элементы, вставленные средой. published используется для написания компент и интеграции их в IDE Delphi, если мы пишем не компонент, то нам хватит и public. private и protected используются для сокрытия внутренностей реализации класса (один из принципов ООП. класс - черный ящик). Секция private сужает область видимости до минимума: закрытые элементы описания доступны только внутри методов данного класса и подпрограммах, находящихся в том же модуле, где описан класс. Элемент, объявленный в секции private, становится недоступным даже ближайшим потомкам класса, если они размещаются в других модулях. Секция protected доступна только методам самого класса, а также любым его потомкам, независимо от того, находятся ли они в том же модуле или нет. protected позволяет наследникам класса всетаки переопределить поведение класса. Наконец, секция automated используется только для объявления свойств и методов, которые будут добавлены к так называемому интерфейсу OLE-объектов Автоматизации; область видимости членов этой секции не ограничена. |
|
Сообщ.
#3
,
|
|
|
|
Цитата НарКот @ Секция published используется только при разработке нестандартных компонентов Неточность. Используется не только для разработки компонентов. published позволяет генерировать RTTI. То же касается и Цитата НарКот @ published используется для написания компент и интеграции их в IDE Delphi, если мы пишем не компонент, то нам хватит и public. |
|
Сообщ.
#4
,
|
|
|
|
Цитата Демо @ позволяет генерировать RTTI. Что это такое? |
|
Сообщ.
#5
,
|
|
|
|
Про RTTI подробно, и по-русски есть в DRKB ("RTTI и другие трюки с информацией о классах, модулях и т.п.")
|
|
Сообщ.
#6
,
|
|
|
|
Большое спасибо!
|