Класс и объект
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| (не показана 1 промежуточная версия 1 участника) | |||
| Строка 1: | Строка 1: | ||
| − | Класс -- это абстракция. Сам по себе он не существует в том смысле, что не занимает место в оперативной памяти компьютера. Класс включает в себя методы, которые определяют поведение, и поля, т.е. некоторые данные. Это называется '''инкапсуляция''', т.е. объединение в рамках одной сущности -- класса -- данных и программного кода (методов). Классы '''наследуются''' один от другого. Наследованный класс (также называемый потомком) получает от родительского все его методы и свойства. Потомок может добавлять свои методы и свои свойства, т.е. расширять родительский класс. И, наконец, потомок может переопределить, перекрыть некоторые методы родительского класса. Методы, которые допускают перекрытие, называются '''виртуальными'''. а сама методика называется '''полиморфизм'''. Еще раз | + | Класс -- это абстракция. Сам по себе он не существует в том смысле, что не занимает место в оперативной памяти компьютера. Класс включает в себя методы, которые определяют поведение, и поля, т.е. некоторые данные. Это называется '''инкапсуляция''', т.е. объединение в рамках одной сущности -- класса -- данных и программного кода (методов). |
| + | |||
| + | Классы '''наследуются''' один от другого. Наследованный класс (также называемый потомком) получает от родительского все его методы и свойства. Потомок может добавлять свои методы и свои свойства, т.е. расширять родительский класс. И, наконец, потомок может переопределить, перекрыть некоторые методы родительского класса. Методы, которые допускают перекрытие, называются '''виртуальными'''. а сама методика называется '''полиморфизм'''. | ||
| + | |||
| + | Еще раз повторим, класс -- это абстракция. Для работы мы создаем '''экземпляр класса''' или по иному -- '''объект'''. Под объект выделяется память в оперативной памяти компьютера и там размещаются значения его свойств. Если мы перекроем метод у некоторого класса, то это перекрытие скажется для всех экземпляров, всех унаследованных классов, когда бы мы их не создали. Например, перекройте метод BeforePost у класса [[gdcClasses.TgdcDocument|TgdcDocument]], поставьте там вывод на экран '''MessageBox''', и где-бы в программе и какой-бы документ вы не вызвали, вы неизменно, при его сохранении, получите на экран сообщение. | ||
| + | |||
| + | Свойства (поля) объекта могут содержать простые данные, как-то: число, строку, дату и т.п, а также могут содержать ссылки на другие объекты или ссылки на процедуры (скрипт-функции), которые будут вызываться в ответ на то или иное событие. Такие свойства, собственно, и называются '''событиями'''. Например, на просмотровой форме со списком накладных, находится бизнес-объект Накладная. Если мы определим для него обработчик события '''OnBeforePost''', куда поместим вызов '''MessageBox''', то сообщение на экран будет выдаваться только при сохранении записи именно в этом объекте и больше нигде. Ни на какой другой документ и даже на аналогичную накладную, но в другом окне, эти изменения действовать не будут. | ||
| + | |||
| + | [[Category:Термины и определения]] | ||
Текущая версия на 14:13, 18 июня 2014
Класс -- это абстракция. Сам по себе он не существует в том смысле, что не занимает место в оперативной памяти компьютера. Класс включает в себя методы, которые определяют поведение, и поля, т.е. некоторые данные. Это называется инкапсуляция, т.е. объединение в рамках одной сущности -- класса -- данных и программного кода (методов).
Классы наследуются один от другого. Наследованный класс (также называемый потомком) получает от родительского все его методы и свойства. Потомок может добавлять свои методы и свои свойства, т.е. расширять родительский класс. И, наконец, потомок может переопределить, перекрыть некоторые методы родительского класса. Методы, которые допускают перекрытие, называются виртуальными. а сама методика называется полиморфизм.
Еще раз повторим, класс -- это абстракция. Для работы мы создаем экземпляр класса или по иному -- объект. Под объект выделяется память в оперативной памяти компьютера и там размещаются значения его свойств. Если мы перекроем метод у некоторого класса, то это перекрытие скажется для всех экземпляров, всех унаследованных классов, когда бы мы их не создали. Например, перекройте метод BeforePost у класса TgdcDocument, поставьте там вывод на экран MessageBox, и где-бы в программе и какой-бы документ вы не вызвали, вы неизменно, при его сохранении, получите на экран сообщение.
Свойства (поля) объекта могут содержать простые данные, как-то: число, строку, дату и т.п, а также могут содержать ссылки на другие объекты или ссылки на процедуры (скрипт-функции), которые будут вызываться в ответ на то или иное событие. Такие свойства, собственно, и называются событиями. Например, на просмотровой форме со списком накладных, находится бизнес-объект Накладная. Если мы определим для него обработчик события OnBeforePost, куда поместим вызов MessageBox, то сообщение на экран будет выдаваться только при сохранении записи именно в этом объекте и больше нигде. Ни на какой другой документ и даже на аналогичную накладную, но в другом окне, эти изменения действовать не будут.