Класс и объект

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

Версия 20:08, 17 марта 2013

Класс -- это абстракция. Сам по себе он не существует в том смысле, что не занимает место в оперативной памяти компьютера. Класс включает в себя методы, которые определяют поведение, и поля, т.е. некоторые данные. Это называется инкапсуляция, т.е. объединение в рамках одной сущности -- класса -- данных и программного кода (методов).

Классы наследуются один от другого. Наследованный класс (также называемый потомком) получает от родительского все его методы и свойства. Потомок может добавлять свои методы и свои свойства, т.е. расширять родительский класс. И, наконец, потомок может переопределить, перекрыть некоторые методы родительского класса. Методы, которые допускают перекрытие, называются виртуальными. а сама методика называется полиморфизм.

Еще раз повторим, класс -- это абстракция. Для работы мы создаем экземпляр класса или по иному -- объект. Под объект выделяется память в оперативной памяти компьютера и там размещаются значения его свойств. Если мы перекроем метод у некоторого класса, то это перекрытие скажется для всех экземпляров, всех унаследованных классов, когда бы мы их не создали. Например, перекройте метод BeforePost у класса TgdcDocument, поставьте там вывод на экран MessageBox, и где-бы в программе и какой-бы документ вы не вызвали, вы неизменно, при его сохранении, получите на экран сообщение.

Свойства (поля) объекта могут содержать простые данные, как-то: число, строку, дату и т.п, а также могут содержать ссылки на другие объекты или ссылки на процедуры (скрипт-функции), которые будут вызываться в ответ на то или иное событие. Такие свойства, собственно, и называются событиями. Например, на просмотровой форме со списком накладных, находится бизнес-объект Накладная. Если мы определим для него обработчик события OnBeforePost, куда поместим вызов MessageBox, то сообщение на экран будет выдаваться только при сохранении записи именно в этом объекте и больше нигде. Ни на какой другой документ и даже на аналогичную накладную, но в другом окне, эти изменения действовать не будут.

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты