Конструкторы AS3 - какой смысл? - PullRequest
0 голосов
/ 23 июня 2011

Вы можете объявлять переменные вне конструктора в классе, так в чем же смысл конструктора в AS3?

Пример:

 package {
    public class traceText {
        var i:String = "Hello!";
        public function traceText() {
        }
        public function sayHello() {
            trace(i);
        }
    }
}

import traceText;
j = new traceText;
j.sayHello();

Я знаю, что вы не можете вызывать функции, однако какова цель конструктора при выполнении кода в классе? Почему бы не разрешить функции и сделать это проще?

Я прошу прощения, если я не знаю, я учусь как 3

Ответы [ 3 ]

5 голосов
/ 23 июня 2011

В вашем примере нет смысла для конструктора. На самом деле, если бы вы пропустили это, компилятор пошел бы вперед и добавил бы то же самое для вас.

Задача конструктора - предоставить дизайнерам классов место для распределения ресурсов.

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

3 голосов
/ 23 июня 2011

Конструктор является частью парадигмы объектно-ориентированного программирования и не зависит от AS3:

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

1 голос
/ 23 июня 2011

Из-за очевидности ответа на ваш вопрос у меня есть ощущение, что я, возможно, неверно истолковал его. Поэтому, пожалуйста, дайте мне знать, если это так.

Конструктор содержит код, который будет запущен, как только будет создан экземпляр вашего класса.

Хороший пример этого - поместить в конструктор следующее:

addEventListener(MouseEvent.CLICK, _click);

Так что все новые экземпляры вашего класса будут «оснащены» этим обработчиком событий.

Если вам не нужно использовать конструктор, вам не нужно создавать его вручную, как в вашем примере; он будет создан автоматически при компиляции приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...