Цитата:
|
Хорошо, я понял. Только объясните ещё одно: зачем тогда они имеют модификаторы управления доступом?
|
Ну как зачем? За тем же, зачем и все остальные (не статические) члены класса. Чтобы регулировать доступ к себе.
Раз уж у меня сегодня вечер аналогий... Например я хочу, чтобы к данному свойству класса (не экземпляра) можно было обратиться только из этого класса. Для этого я напишу:

Код 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 (только внутри данного класса).
Цитата:
|
я сомневаюсь что я написал ерунду
|
Отриньте все сомнения. Модификаторы доступа не могут быть "лучше" или "хуже". Каждый из них хорош тогда, когда уместен.