创建一个 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要求请参见
参考
import 语句internal 修饰符