|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Mar 2010
Сообщений: 3
|
ООП - защита классов,функций и переменных.. не понимаю =(
Здравствуйте флешеры)
скорее вопрос заключается в ООП, а не в именно в AC3, но все же... Моя беда в том, что не могу я понять зачем нужно использовать private или protected при описании чего-либо... чаще всего использую ключевое слово public и последнее время меня начало это как-то очень сильно волновать, потому что в чужом коде есть и private и protected объекты. хелп читал: internal (по умолчанию) Видимый для ссылок внутри того же пакета. private - Видимый для ссылок в том же классе. protected - Видимый для ссылок в том же классе и в производных классах. public - Видимый для всех ссылок. Это понятно... но для чего они защищаются? Я не могу привести такой пример, в котором необходимо пользоваться private и protected.. какая у них выгода перед public? Еще я не могу понять зачем использовать геттеры и сеттеры, когда можно устанавливать значения напрямую обращаясь к переменной.. Просветите, если не трудно, очень хорошо бы было, если на примерах . Спасибо. |
|
|||||
Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,181
|
ага...а ещё лучше везде юзать класс Object
это так...шутка. Не хочется разводить демагогий долгих (ждём wvxvw ). Понимание необходимости придёт с опытом + без этого нельзя, если вы работает в команде |
|
|||||
strange mood
|
Private и protected нужны для того, чтобы никто без вашего разрешения не смог что-то изменить в вашем объекте. Со временем для вас станет нормой объявлять все свойства private, и только некоторые, в качестве исключения - public. Тут должен быть жёсткий принцип: всё, что не разрешено - запрещено.
__________________
тонкий тролль, осеянный благодатью |
|
|||||
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
К примеру у тебя есть объект рубильник:MovieClip(мувик с двумя кадрами:рычаг поднят/опущен), у него есть свойство on:Boolean. если ты свойство on просто сделаешь public, вместо специального setter-метода ты можешь забыть что для переключения рубильника нужно не только изменить свойство on, но и перейти на другой кадр.
|
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
Цитата:
Последний раз редактировалось udaaff; 19.03.2010 в 12:39. |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Цитата:
Цитата:
И в правду, если у тебя есть метод который должен вызываться только после того, как твой модуль отработает, причем конец работы определяет лишь сам модуль - зачем тебе "сдирать кожу", убирая защиту и ставя public? Через полгода ты забудешь, что это делает и будешь думать - о, это чтобы работу прервать резко! И будешь огорчен, когда всё пойдёт не так. А вообще поставь себе FlashDevelop, там автокомплит прикольный - будешь писать private/public/protected ради автокомплита) Я кстати начинал так писать только из за этого, понимание пришло потом)
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Геттеры/ Сеттеры очень хорошая вещь:
1: в сеттере можно вставить проверку валидности данных public function set a(value:int):void { if(value<100)_a = value; else throw(new Error("Invalid value on "+this.className+".a")); } public function set a(value:int):void { _a = value; dispatchEvent(new ChangeModelEvent("a")); } 4: можно создать только геттер - тогда свойство будет "только для чтения" ( правда это не работает со сложными типами, т.к. для изменений свойств объекта достаточно ссылки на объект) 5: сеттеры позволяют выполнить некую операцию, например: при изменении width на самом деле изменяем масштабирование по scaleX 6: в геттере можно возвращать вычисляемое значение: 7: в геттере/ сеттере можно переопределить свойства вложенного в Композицию или в Декоратор объекта Я настолько к ним привык, что практически все свойства у меня задаются через сеттеры/геттеры
__________________
Отряд Котовскага Последний раз редактировалось Котяра; 19.03.2010 в 13:38. |
|
|||||
Регистрация: Mar 2010
Сообщений: 223
|
На 57 странице русской версии Мука есть таблица про модификаторы управления доступом переменными. Хотя бы скачайте эту книжку, там очень доходчиво про них написано. По крайней мере я понял))).
|
|
|||||
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
Цитата:
|
|
|||||
Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,181
|
так пожалуйста, юзайте public, только Object или не, лучше * и код пишите в блокноте, а потом покажите результат мега-клёвого проекта
|
Часовой пояс GMT +4, время: 11:37. |
|
« Предыдущая тема | Следующая тема » |
Теги |
private , protected , public , ООП |
|
|