20 Мая 2024, 14:08:51
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Навигация по форуму







guest3d
Quest3D - Русскоязычное сообщество > Quest3D > Программирование > Quest3D OO для начинающих
Quest3D OO для начинающих
(Прочитано 9259 раз)
  [1]
Печать
DimiS | **** | Старожил | Сообщений: 284 | « 18 Сентября 2009, 17:40:57 »
Quest3D OO для начинающих |
0
В этой теме я постараюсь систематизировано описать всё, что может понадобится новичку чтоб начать использовать квестовое ОО. Посты будут добавляться постепенно, по мере появления у меня свободного времени и вдохновения Улыбающийся Вы можете оставлять тут комментарии с вопросами, которые остались не понятны, не полностью раскрыты, или идеями о том что стоило бы изменить.


Что такое ООП, и зачем оно нужно

Объектно ориентированное программирование (ООП) придумано давно, и его основной целью была систематизация кода, представление его в форме, удобной для восприятия человеком. Фактически это цель всех языков программирования, даже ассемблера Улыбающийся Но ООП это такой способ программирования и применяться может в любом языке. В некоторых языках есть средства для упрощения применения этого способа. С версии 4.0 такие средства появились и в квесте.

Это я всё к тому, что использование квестовой системы ОО совершенно не обязательно. ВСЁ, что можно создать используя ОО, можно создать и без его использования. Разница будет только в удобности разработки кода и внесения изменений в такой код. И естественно таких результатов можно добиться не сразу.

Один из принципов ООП заключается в рассмотрении всех данных с которыми оперирует программа как свойств определённых объектов, а всех функций с этими данными как методов тех объектов, свойствами которых являются эти данные. Это в общих чертах Улыбающийся

Почему ООП удобен для восприятия человеком? Потому, что человек тоже склонен мыслить объектно. Пример из жизни. Шкаф, вы смотрите на него, и видите, что у него есть определённый цвет, размер, стиль в котором он изготовлен, определённый набор полочек и выдвижных ящичков. Всё это его свойства. Вы можете открыть дверки или выдвинуть ящички -- это его методы.

Допустим у вас есть два разных шкафа, но они оба обладают такими свойствами и методами. Их можно описать именно такой совокупность свойств и методов. Это называется общим для этих объектов интерфейсом. Мы обозначаем этот интерфейс словом "шкаф", и когда употребляем это слово в разговоре -- все сразу понимают, о чём речь.

Но при этом у одно из этих двух шкафов дверцы-створки, а у другого раздвижные панели. Таким образом, один и тот же метод открывания шкафа реализован по разному у этих двух объектов. Кроме того, их цвет, размер и т.д тоже различаются. Это называется переопределением методов и свойств интерфейса.

Створки одного из шкафов зеркальны, т.е. его можно использовать как зеркало. У него есть такие же свойства, как и у других зеркал -- высота и ширина зеркальной поверхности, качество отражения. Получается что этот объект содержит сразу два интерфейса -- "шкаф" и "зеркало". В языках высокого уровня это назвали бы множественным наследованием, но в нашем случае и наследования то как такового почти нет Улыбающийся Поэтому будем называть это просто использованием нескольких интерфейсов.

Где-то там, на заводе, такие шкафы клепают на конвеере. Они все одинаковые, сделаны по одному и тому же шаблону. Тип шкафа называют ещё моделью, программисты называют это классом объекта. В таком контексте объект ещё называют экземпляром класса. Именно класс задаёт какой перечень интерфейсов будет в себя включать объект. Класс определяет каковы будут значения констант, таких как размер и цвет шкафа. Переопределение методов тоже происходит при объявлении класса.

В чём же различие между двумя экземплярами одного и того же шкафа? Кроме разного места нахождения, это ещё и разное содержимое. Ведь содержание в себе других объектов -- это и есть основное назначение шкафа, и все его методы направлены на обеспечение доступа к содержимому, возможность сортировки(полочки). Содержимое можно назвать динамическим свойством интерфейса, т.е. динамически изменяемым. Хотя сами по себе, вещи которые складываются в шкаф -- тоже объекты.

Вот такой вот пример, в нём я постарался объяснить основные понятия, с которыми мы будем работать в дальнейшем
« Последнее редактирование: 19 Сентября 2009, 00:45:43 от DimiS »
cashis | **** | Старожил | Сообщений: 353 | «Ответ #1 18 Сентября 2009, 20:11:49 »
Re: Quest3D OO для начинающих |
1
Начало мне нравится продолжай в том же духе ! Спасибо !
Dr.Akula | ** | Пользователь | Сообщений: 68 | «Ответ #2 19 Сентября 2009, 07:03:22 »
Re: Quest3D OO для начинающих |
2
Шкафы зделанные на OOП действительно гораздо удобнее  Смеющийся
DimiS | **** | Старожил | Сообщений: 284 | «Ответ #3 19 Сентября 2009, 08:17:32 »
Re: Quest3D OO для начинающих |
3
яхз, но шкафы заполониле Веселый

* шкафы.JPG (64.48 Кб, 567x434 - просмотрено 1431 раз.)
barmadjar | *** | Постоялец | Сообщений: 142 | «Ответ #4 22 Сентября 2009, 13:11:15 »
Re: Quest3D OO для начинающих |
4
Да, начало отличное!
Нутром чую, что ОО необходимо освоить, но не знаю как подступиться. Начинаю смотреть примеры с использованием ОО и запутываюсь окончательно, понимая, что не хватает теоретической базы.
 
  [1]
Печать
 
Quest3D - Русскоязычное сообщество > Quest3D > Программирование > Quest3D OO для начинающих
Перейти в: