Показать сообщение отдельно
Старый 26.01.2013, 23:57
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 8  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
Хорошо, я понял. Только объясните ещё одно: зачем тогда они имеют модификаторы управления доступом?
Ну как зачем? За тем же, зачем и все остальные (не статические) члены класса. Чтобы регулировать доступ к себе.
Раз уж у меня сегодня вечер аналогий... Например я хочу, чтобы к данному свойству класса (не экземпляра) можно было обратиться только из этого класса. Для этого я напишу:
Код AS3:
public class Rabbit {
 
    private static var carrotStory:String = "carrot is a lie!";
 
    public function Rabbit() {
        trace("new rabbit created");
    }
 
    public function tellMeAboutCarrot():void {
        trace(Rabbit.carrotStory);
    }
 
}
Видите - я сделал класс Кролик (Rabbit) и только кролики будут знать правду о морковке (carrot). Проверим:
Код AS3:
var one:Rabbit = new Rabbit();
var two:Rabbit = new Rabbit();
 
one.tellMeAboutCarrot(); // выведется сообщение
two.tellMeAboutCarrot(); // снова видим сообщение
 
trace(Rabbit.carrotStory); // а вот тут будет ошибка!
Видите? Кролики знают всю правду о морковке и могут рассказать если их попросить. Более того, сведения общие для всех кроликов, так как переменная у нас static. Однако сами мы получить эти сведения не можем, так как установлен модификатор доступа private (только внутри данного класса).


Цитата:
я сомневаюсь что я написал ерунду
Отриньте все сомнения. Модификаторы доступа не могут быть "лучше" или "хуже". Каждый из них хорош тогда, когда уместен.
__________________
...вселенская грусть