Название: Quest3D OO для начинающих Отправлено: DimiS от 18 Сентября 2009, 17:40:57 В этой теме я постараюсь систематизировано описать всё, что может понадобится новичку чтоб начать использовать квестовое ОО. Посты будут добавляться постепенно, по мере появления у меня свободного времени и вдохновения :) Вы можете оставлять тут комментарии с вопросами, которые остались не понятны, не полностью раскрыты, или идеями о том что стоило бы изменить.
Что такое ООП, и зачем оно нужно Объектно ориентированное программирование (ООП) придумано давно, и его основной целью была систематизация кода, представление его в форме, удобной для восприятия человеком. Фактически это цель всех языков программирования, даже ассемблера :) Но ООП это такой способ программирования и применяться может в любом языке. В некоторых языках есть средства для упрощения применения этого способа. С версии 4.0 такие средства появились и в квесте. Это я всё к тому, что использование квестовой системы ОО совершенно не обязательно. ВСЁ, что можно создать используя ОО, можно создать и без его использования. Разница будет только в удобности разработки кода и внесения изменений в такой код. И естественно таких результатов можно добиться не сразу. Один из принципов ООП заключается в рассмотрении всех данных с которыми оперирует программа как свойств определённых объектов, а всех функций с этими данными как методов тех объектов, свойствами которых являются эти данные. Это в общих чертах :) Почему ООП удобен для восприятия человеком? Потому, что человек тоже склонен мыслить объектно. Пример из жизни. Шкаф, вы смотрите на него, и видите, что у него есть определённый цвет, размер, стиль в котором он изготовлен, определённый набор полочек и выдвижных ящичков. Всё это его свойства. Вы можете открыть дверки или выдвинуть ящички -- это его методы. Допустим у вас есть два разных шкафа, но они оба обладают такими свойствами и методами. Их можно описать именно такой совокупность свойств и методов. Это называется общим для этих объектов интерфейсом. Мы обозначаем этот интерфейс словом "шкаф", и когда употребляем это слово в разговоре -- все сразу понимают, о чём речь. Но при этом у одно из этих двух шкафов дверцы-створки, а у другого раздвижные панели. Таким образом, один и тот же метод открывания шкафа реализован по разному у этих двух объектов. Кроме того, их цвет, размер и т.д тоже различаются. Это называется переопределением методов и свойств интерфейса. Створки одного из шкафов зеркальны, т.е. его можно использовать как зеркало. У него есть такие же свойства, как и у других зеркал -- высота и ширина зеркальной поверхности, качество отражения. Получается что этот объект содержит сразу два интерфейса -- "шкаф" и "зеркало". В языках высокого уровня это назвали бы множественным наследованием, но в нашем случае и наследования то как такового почти нет :) Поэтому будем называть это просто использованием нескольких интерфейсов. Где-то там, на заводе, такие шкафы клепают на конвеере. Они все одинаковые, сделаны по одному и тому же шаблону. Тип шкафа называют ещё моделью, программисты называют это классом объекта. В таком контексте объект ещё называют экземпляром класса. Именно класс задаёт какой перечень интерфейсов будет в себя включать объект. Класс определяет каковы будут значения констант, таких как размер и цвет шкафа. Переопределение методов тоже происходит при объявлении класса. В чём же различие между двумя экземплярами одного и того же шкафа? Кроме разного места нахождения, это ещё и разное содержимое. Ведь содержание в себе других объектов -- это и есть основное назначение шкафа, и все его методы направлены на обеспечение доступа к содержимому, возможность сортировки(полочки). Содержимое можно назвать динамическим свойством интерфейса, т.е. динамически изменяемым. Хотя сами по себе, вещи которые складываются в шкаф -- тоже объекты. Вот такой вот пример, в нём я постарался объяснить основные понятия, с которыми мы будем работать в дальнейшем Название: Re: Quest3D OO для начинающих Отправлено: cashis от 18 Сентября 2009, 20:11:49 Начало мне нравится продолжай в том же духе ! Спасибо !
Название: Re: Quest3D OO для начинающих Отправлено: Dr.Akula от 19 Сентября 2009, 07:03:22 Шкафы зделанные на OOП действительно гораздо удобнее ;D
Название: Re: Quest3D OO для начинающих Отправлено: DimiS от 19 Сентября 2009, 08:17:32 яхз, но шкафы заполониле :D
Название: Re: Quest3D OO для начинающих Отправлено: barmadjar от 22 Сентября 2009, 13:11:15 Да, начало отличное!
Нутром чую, что ОО необходимо освоить, но не знаю как подступиться. Начинаю смотреть примеры с использованием ОО и запутываюсь окончательно, понимая, что не хватает теоретической базы. |