Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Четыре типа переменных (http://www.flasher.ru/forum/showthread.php?t=137031)

phelix_tc 03.03.2010 12:11

Четыре типа переменных
 
Доброго времени суток уважаемые.
Сейчас вкуриваю К. Мук "ActionScript 3.0 для Flash". И у него встречается следующее:
Код:

Существует четыре типа переменных: локальные переменные, переменные 
экземпляра, динамические переменные экземпляра и статические переменные.

Что-то туго мне в голову лезет эта информация. Объясните плз про все 4 вида переменных, желательно кратко аналогом из жизни, т.е.:
локальная переменная: левая нога - потому что нога, потому что растет с левой стороны туловища :) Ну как-то так.

r_r_f_r 03.03.2010 12:27

Экземпляр - человек :)

Локальная переменная - произносимый звук(создается во время открывания рта и существует только в это время, его может кто-то запомнить, но это уже не к нашему объекту относится)

Переменные экземпляра - левая нога, правая нога, всё что есть у всех людей при создании, но оно различно.

Динамические переменные экземпляра - неожиданно появившаяся третья нога, человек не рассчитывал при создании, что родители надумают её прикрутить.

Статические переменные - интернет(все о нём знают, он один, но не всем религия позволяет им пользоваться)

phelix_tc 03.03.2010 12:42

Так, что-то назревает в мозгу.
Т.е. это будет так:
Локальная переменная появляется когда что-то происходит, но как только это что-то перестала происходить, то и она исчезает. Переменная экземпляра присутствует всегда, вне зависимости от происходящего. Динамическая переменная появляется когда что-то происходит, но остается когда это что-то перестало происходить. Статистическая переменная может присутствовать всегда, а может и не присутствовать.
Так?

r_r_f_r 03.03.2010 13:05

Да, так, но вами перечисленные "законы" необходимы, но недостаточны.

Локальная - создаётся в функции, и существует только во время её выполнения.
Экземпляра - создаётся вместе с созданием экземпляра, и существует вместе с ним и относится к экземпляру.
Динамическая - создаётся в любой момент времени каким-то другим экземпляром в нашем экземпляре.
Статическая - одна для всех экземпляров данного класса, создаётся либо при обращении к ней через Класс.ПЕРЕМЕННАЯ, либо же при инициализации экземпляра этого класса(что быстрей, то и проинициализирует).

Нужно смотреть на примерах, на словах это сложно понять.

CrazyFlasher 03.03.2010 13:18

Код AS3:

package {
 
        /**
        * ...
        * @author Anton
        */

 
        //Если класс динамический (public dynamic class), то переменные можно создавать на лету
        //(не советую)
 
        public class Kot {
 
                //статичная переменная, можно обращаться не создавая нового кота (new Kot()),
                //а просто так Kot.color = 0x000000;
                public static var color:uint = 0x000000;
 
                //переменные  экземпляра
                private var lapa_1:Lapa;
                private var lapa_2:Lapa;
                private var lapa_3:Lapa;
                private var lapa_4:Lapa;
                private var boshka:Boshka;
                private var hvost:Hvost;
 
                public var jaica:Eggs;
 
                //конструктор класса
                public function Kot() {
 
                }
 
                //публичный метод
                public function havat(eda:Food):Shit {
 
                        //локальная переменная (видна только в теле метода)
                        var kakashki:Shit = new Shit();
 
                        return kakashki;
                }
 
        }
 
}


phelix_tc 03.03.2010 13:20

В принципе, я понял, теперь надо на практике отработать. Спасибо.
Примеры из жизни для меня как-то лучше доходят :)
Крэйзи. спасибо за пример. Вкуриваю.

cleptoman 03.03.2010 21:35

если почитаете дальше, то ,думаю, в книге все это разжовывается

phelix_tc 03.03.2010 22:36

Врятли настолько сильно разжевывается как в приведенных примерах уважаемых r_r_f_r и CrazyFlasher.
К тому же в книге 990+ страниц, т.ч. лучше я постараюсь сейчас непонятное для себя прояснить, чем прочитать книгу и ничего не понять :)


Часовой пояс GMT +4, время: 17:18.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.