Руководство по actionscript. часть 1, стр. 031
Модификаторы управления доступом для классов. По умолчанию обращение к классу, входящему в состав определенного пакета, может осуществляться только из кода, принадлежащего тому же пакету. Чтобы класс был доступен для использования за пределами пакета, которому он принадлежит, мы должны описать этот класс с помощью атрибута public. Вообще говоря, атрибуты определяют порядок использования класса и его экземпляров в программе. Атрибуты указываются перед ключевым словом class в описании класса, как показано в приведенном ниже общем примере:
атрибут class ИдентификаторКласса { }
Например, чтобы добавить атрибут public к классу VirtualPet, нужно использовать следующий код:
package zoo { public class VirtualPet { }
}
Однако применение атрибута public в случае с классом VirtualPet необязательно, поскольку класс VirtualPet используется только классом VirtualZoo, а тот, в свою очередь, может обращаться к классу VirtualPet (классы, принадлежащие одному пакету, могут всегда обращаться друг к другу). Таким образом, мы можем вернуться к исходному описанию класса VirtualPet, которое косвенным образом позволяет использовать этот класс только внутри пакета zoo:
package zoo { class VirtualPet { }
}
Если мы хотим явно указать, что класс VirtualPet может быть использован только внутри пакета zoo, то в описание класса необходимо добавить атрибут internal, как показано ниже:
package zoo { internal class VirtualPet { }
}
Класс, описанный с помощью атрибута internal, может быть использован только внутри пакета, которому он принадлежит. Другим словами, описание класса с помощью атрибута internal совершенно не отличается от описания класса без использования каких-либо модификаторов управления доступом. Атрибут internal просто служит для однозначного толкования замысла программиста.