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 修饰符

其他资源

修饰符