Классы
Забудьте то, что знаете о функциях. Забудьте, что они получают аргументы и возвращают ответ. Забудьте, что они хороший способ сократить блок кода до простого имени. Фактически они являются просто шаблонами, используемыми для задания свойств в объекте. Здесь ключевое слово - ШАБЛОН. Шаблон может использоваться для создания новых объектов, а так же для изменения существующих. С одним и тем же шаблоном можно создавать так много объектов, как это вам необходимо.
Шаблон нельзя съесть, пощупать или понюхать, это доступно только с объектами, сделанными с его помощью. Полезно подумать о шаблоне, как об идее, а об объекте, как о вещи в реальном мире, подобной вашему башмаку... Нельзя есть идею о ботинке, но можете погрызть свой башмак. Это просветлит ваши мысли, если они были запутаны до этого.
Это все немного абстрактно, однако повторюсь еще раз - это очень простое понятие. Например:
Template = function() { this.x = 5; this.y = 7; }
inst1 = new Template( ); inst2 = new Template( ); inst3 = new Template( );
trace( inst1.x); // 5 trace( inst1.y); // 7 trace( inst2.x); // 5 trace( inst2.y); // 7
Слово, используемое в ООП терминологии для обозначения этих шаблонов - "Класс" (Class) (здесь следует думать о классификации, а не о классной комнате).
Класс (Class) это шаблон, который используется для создания новых объектов, называемых "экземплярами" (instances). Объекты и экземпляры суть одно и то же и могут быть взаимозаменяемыми (и часто!). Упомянутое слово "экземпляр" обычно предполагает объекты, созданные из класса с использованием оператора new, в то время как "объект" является более общим термином для всех объектов.
Имена классов всегда должны начинаться с заглавной буквой, имена экземпляров - с маленькой. Если вы будете придерживаться этого правила, вам будет легко и просто обращаться к ним.
Несмотря на то, что класс это просто абстрактная идея в эфире, а экземпляр настолько реален, что оставляет след, когда шлепается на вас, в программе они имеют тенденцию выглядеть устрашающе одинаково.
Помните: ClassName - instanceName
Экземпляры происходят от классов, поэтому переходим к следующему разделу с экземплярами ...
<<
ООП во Flash 5 >>