![]() |
Как изменять значение статической переменной из другого класса?
Здравствуйте. :)
Подскажите, пожалуйста. :) Как можно изменить значение статической переменной с модификатором управления доступом public из другого класса? Есть два класса. Первый (ПервыйКласс) содержит локальную переменную, которая создаёт объект (экземпляр класса ВторойКласс). Экземпляр второго класса (ВторойКласс) содержит статическую переменную staticVar. Когда я обращаюсь с первого класса (ПервыйКласс) к статической переменной staticVar объекта (экземпляра класса ВторойКласс) возникает "ошибка" такого типа: ReferenceError: Error #1069: Не удалось найти свойство staticVar в src.BelowDoctrine; отсутствует значение по умолчанию. at src::Doctrine(). Как можно исправить этот недуг? Заранее большое спасибо. :) |
вроде,если я не ошибась,необходимо указать класс,к статическому свойству которого вы хотите обратиться,то есть
напишу "по вашему" первый класс Код AS3:
з.ы.вообще говоря не очень хорошо использовать свойства с модификатором public, хорошо было бы брать private,используя эту переменную в конструкторе,который в свою очередь по определению public,но при этом не будет возможности случайно изменить вашу статическую переменную. |
Цитата:
|
Статическое свойство как и обычное свойство лучше использовать с модификатором доступа private.
Фишка статического свойства в том что привязан к самому классу а не к его экземпляру. Отсутсвует значение по умолчанию,у вашей статики такой вид? Код AS3:
|
Цитата:
Код AS3:
Код AS3:
Так же точно все и с классами - хотим поменять свойство класса - обращаемся к классу. А не к экземпляру или еще чему-то. Вот еще одна аналогия: Представьте что на столе у вас лежит чертеж самолета. Обычный самый чертеж, карандашом на бумаге. И тут же рядом разбросаны детали для модели такого самолета. И мы с вами берем детали, смотрим на чертеж и собираем одну за одной модели самолетов. Так вот отношение класса и экземпляра в ActionScript - оно точно такое же как отношение чертежа и модели самолета в этом примере. То есть если вы измените чертеж (дорисуете еще одно кресло в кабине пилота, например), то те модельки, которые мы уже собрали от этого не изменятся. И то же с моделями - поменяв модель мы никак не меняем чертеж. И все же чертеж при этом остается документом, по которому можно собирать новые модели и одновременно остается таким же объектом, как и сами модели. Цитата:
|
Цитата:
|
propMine , то есть вы хотите сказать что вы используете статические методы ол public?
я сомневаюсь что я написал ерунду.Переменные которые написаны с модиком public ,запросто можно изменить даже не догадываясь об этом и здесь нет разницы, статические или обычные свойства.Ну вы видимо всё делаете по чертежам,такое трудно осознать... Добавлено через 1 минуту Цитата:
|
Цитата:
Раз уж у меня сегодня вечер аналогий... Например я хочу, чтобы к данному свойству класса (не экземпляра) можно было обратиться только из этого класса. Для этого я напишу: Код AS3:
Код AS3:
Цитата:
|
Цитата:
|
А вот я возьму, и не буду отвечать на ваш вопрос =) Потому что к теме он не относится.
PS Ну ладно, отвечу. Ну, скажем, практика странная. Потому что модификаторов доступа больше 2, более того в ActionScript мы имеем возможность объявлять свои собственные пространства имен (считай, те же модификаторы доступа). А вы почему-то говорите что private - самый лучший. А я вот не согласен. |
| Часовой пояс GMT +4, время: 05:44. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.