Поделиться через


Оператор package

Создает пакет JScript, с помощью которого удобно выполнять упаковку именованных компонентов.

package pname {
   [[modifiers1] pmember1]
   ...
   [[modifiersN] pmemberN]
}

Аргументы

  • pname
    Обязательный. Имя создаваемого пакета.

  • modifiers1, ..., modifiersN
    Необязательный. Модификаторы, которые управляют видимостью и поведением объекта pmember.

  • pmember1, ..., pmemberN
    Необязательный. Определение класса, интерфейса или перечисления.

Заметки

В пакете разрешается использовать только классы, интерфейсы и перечисления. Чтобы упростить управление доступом к членам пакета, их можно пометить идентификаторами видимости. В частности, члены, которые должны быть видимы только в текущем пакете, помечаются модификатором internal.

После импорта пакета доступ к членам пакета можно получать непосредственно по имени, за исключением случаев, когда в области действия импорта является видимым другое объявление с тем же именем. В таких случаях имя члена должно уточняться именем пакета.

В языке JScript не поддерживается объявление вложенных пакетов; в состав пакета могут входить только классы, интерфейсы и перечисления. Имя пакета может содержать знак ".", который указывает, что данный пакет следует рассматривать как вложенный в другой пакет. Например, между пакетами Outer и Outer.Inner не требуется указывать особое отношение, поскольку они являются пакетами в глобальной области действия. Однако их имена неявно указывают, что пакет Outer.Inner следует рассматривать как вложенный в пакет Outer.

Пример

В следующем примере определяются три простых пакета и импортируются пространства имен в скрипт. Как правило, каждый пакет является отдельной сборкой, чтобы обеспечить обслуживание и распространение содержимого пакета.

// Create a simple package containing a class with a single field (Hello).
package Deutschland {
   class Greeting {
      static var Hello : String = "Guten tag!";
   }
};
// Create another simple package containing two classes.
// The class Greeting has the field Hello.
// The class Units has the field distance.
package France {
   public class Greeting {
      static var Hello : String = "Bonjour!";
   }
   public class Units {
      static var distance : String = "meter";
   }
};
// Use another package for more specific information.
package France.Paris {
   public class Landmark {
      static var Tower : String = "Eiffel Tower";
   }
};

// Declare a local class that shadows the imported classes.
class Greeting {
   static var Hello : String = "Greetings!";
}

// Import the Deutschland, France, and France.Paris packages.
import Deutschland;
import France;
import France.Paris;

// Access the package members with fully qualified names.
print(Greeting.Hello);
print(France.Greeting.Hello);
print(Deutschland.Greeting.Hello);
print(France.Paris.Landmark.Tower);
// The Units class is not shadowed, so it can be accessed with or without a fully qualified name.
print(Units.distance);
print(France.Units.distance);

При выполнении этого скрипта выводится следующий результат:

Greetings!
Bonjour!
Guten tag!
Eiffel Tower
meter
meter

Требования

Версия .NET

См. также

Ссылки

Оператор import

Модификатор internal

Другие ресурсы

Модификаторы