|
|
|||||
Регистрация: Mar 2013
Адрес: Black Sea cost
Сообщений: 30
|
Муки новичка, от Колина Мука
Начал изучать AS3 по книге Колина Мука.
В этом деле я начинаю абсолютно с нуля, не имея за собой никакого опыта в программировании. И, не знаю, у всех ли новичков, кто начинал с Мука, воспринималось так же, но для меня - книга дотошно оперирует кучами разных терминов. Большими кучами! Не дает сопоставить между собой элементарное, постоянно в этих терминах запутывая; не позволяя сосредоточится на том, что, собственно, сам-то код делает!. Поэтому, перечитывая по 5 раз (не преувеличиваю), одни и те же страницы, еле Помогите, пожалуйста, разобраться. Ибо книга не дает. Я выложу код и опишу, как я его понимаю, укажите, пожалуйста, на ошибки, если такие будут. Прошу прощения, если столько писанины осиливать напряжно, но узнать нужно именно это - деваться мне не куда. Посоветоваться, чтобы разобраться, не с кем. Сейчас такое дерево каталогов с файлами: VirtualZoo.as package zoo { public class VirtualZoo{ public function VirtualZoo ( ) { var pet = new VirtualPet("Stan"); } } } public class VirtualZoo{ -- Затем создаем класс, внутри этого пакета. "public" - в этом месте это, своего рода, тоже стандарт компилятора, дает понять, что этот класс - основной в "zoo". Оно и понятно - "public" в принципе делает класс доступным за пределами дериктории, в которой находится. "class" - задает класс "VirtualZoo" - несет имя точно совпадающее с регистром букв файла VirtualZoo.as (так нужно описывать каждый класс, если я правильно понял) public function VirtualZoo ( ) { -- Описываем функцию. "public" - опять же делает функцию общедоступной, даже ЗА пределами директории "zoo", "function" - описывает функцию, "VirtualZoo" - так мы назвали функцию... судя по всему, могли назвать как угодно, на совпадения с именами файла и основного класса это никак не влияет и какой-нибудь "главной" функцию не делает. var pet = new VirtualPet("Stan"); -- задаем значение функции, описанной в VirtualPet.as. "var" - мы задаем новую переменную "pet" - даем переменной имя "new" - указываем, что она новая (тут не понял, зачем, естественно, они все новые, объясните, пожалуйста) "VirtualPet("Stan")" - присваиваем значение name для функции VirtualPet, созданной в VirtualPet.as... судя по всему... VirtualPet.as package zoo { internal class VirtualPet{ internal var petName; public function VirtualPet (name){ this.petName = name; } } } internal class VirtualPet{ -- здесь мы прописываем класс уже "internal", давая понять, что это не основной класс и за пределами "zoo" он вызываться ничем не будет! Только внутренними классами. internal var petName; -- задаем переменную petName. Не совсем понял, почему internal. Судя по всему, потому, что планируем использовать ее в другом классе. однако тоже в пределах "zoo" public function VirtualPet (name){ -- объявляем функцию VirtualPet "public" - доступна везде "function" - описывает, что мы делаем функцию "VirtualPet (name)" - функция называется VirtualPet, а ее значение мы называем "name" (или это одно из значений, которое можно дать функции, не знаю, запутался) this.petName = name; -- ... "this" - книга говорит, что мы указываем на какой-то создаваемый экземпляр класса VirtualPet... затем говорит, что имелось ввиду, что мы указываем на создаваемый объект... какой объект и что имеет ввиду под этим объектом, не говорит. Функция - наш создаваемый объект? Или значение name... или класс имеется ввиду. "petName" - обращение к переменной petName, которую мы создали. "name;" - присваиваем petName значение name. А name'ом у нас является, вроде как "Stan". то есть теперь petName содержит слово "Stan" Последний раз редактировалось Jim; 31.03.2013 в 00:29. |
|
|||||
Регистрация: Dec 2012
Адрес: Ростов-на-Дону
Сообщений: 13
|
Много букв, все не читал, но по своему опыту прочтения Мука помню было сначала непонятно что такое конструктор.
Эта функция и называется конструктором. Она вызывается, когда вы создаете экземпляр класса VirtualPet. (name) здесь это параметры функции. Внутри функции ими можно манипулировать как переменными. Т.е. если вы в классе VirtualZoo напишете А в классе VirtualPet То программа выведет "Stan". слово 'new' - это не новая переменная, а создание нового экземпляра класса. В общем мне тоже по началу много было непонятно, поэтому совет такой - читайте дальше Даже если что то пока не совсем ясно. Про конструктор станет понятней в главе про наследование |
|
|||||
Регистрация: Nov 2010
Сообщений: 497
|
Цитата:
Цитата:
Вот в данном случае samePet и pet "указывают" на один и тот же объект. Этим экземпляром можно "управлять" через любую из этих двух переменных. Причем переменные именно "указывают". При присванивании samePet другого объекта (ну например, samePet = new VirtualPet("Not Stan"), она просто будет указывать на другой объект, а "Stan" продолжить существовать дальше, пока на него будет кто-то указывать. Цитата:
Цитата:
В остальном более-менее правильно. Добавлено через 6 минут Если дружите с английским, посмотрите еще это и это. Там про java, но у AS3 семантика та же. На второй страничке еще примерно нарисованно, что такое "объект" и что такое переменная. |
|
|||||
Lorem ipsum
|
Название темы не отражает сути вопроса.
__________________
Поймай яблоко 2! |
Часовой пояс GMT +4, время: 16:55. |
|
« Предыдущая тема | Следующая тема » |
|
|