Показать сообщение отдельно
Старый 11.03.2011, 19:51
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 5  
Ответить с цитированием
goodguy
Banned

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
Сообщение от RomECH Посмотреть сообщение
Видал. Меня интересует пример практического применения.
допустим есть класс, в котором есть переменная:
Код AS3:
public class SomeClass {
     public var publVar:Number = 1;
 
     public function SomeClass() {
 
     }
}
и есть другой класс, в котором создается экземпляр первого класса (SomeClass)
Код AS3:
public class AnotherClass {
 
 
     public function AnotherClass () {
          var someClass:SomeClass = new SomeClass();
          trace(someClass.publVar); // трейс выведет 1
     }
}
Если бы переменная в первом классе была private то из друго класса она была бы не доступна. И попытка ее оттрейсить привела бы к ошибке

Т.е.
private - Доступны только для класса, в котором созданы
public - Доступны для любого класса в котором есть ссылка на класс в котором объявлено это puclic свойство (как в примере)
protected - доступно для потомков класса. Например:

Код AS3:
public class SomeClass {
     protected var protVar:Number = 1;
 
     public function SomeClass() {
 
     }
}
Теперь создаю потомка этого класса:
Код AS3:
public class DescClass extends SomeClass
{
 
     public function DescClass () {
          trace(protVar); // так же выведет 1, так как это свойство объявлено в классе-предке как protected
     }
}