package (Instrucción)
Crea un paquete de JScript que permite el correcto empaquetado de componentes con nombre.
package pname {
[[modifiers1] pmember1]
...
[[modifiersN] pmemberN]
}
Argumentos
pname
Obligatorio. Nombre del paquete que se va a crear.modifiers1, ..., modifiersN
Opcional. Modificadores que controlan la visibilidad y el comportamiento del miembro de la clase.pmember1, ..., pmemberN
Opcional. Definición de clase, interfaz o enumeración.
Comentarios
Sólo se permiten clases, interfaces y enumeraciones dentro de un paquete. Los miembros de un paquete se pueden marcar con modificadores de visibilidad para ayudar a controlar el acceso a los mismos. En concreto, el modificador internal marca un miembro como visible sólo en el paquete actual.
Una vez que se ha importado un paquete, se puede tener acceso a los miembros del paquete directamente por el nombre, excepto cuando un miembro tiene el mismo nombre que otra declaración visible en el ámbito donde se está importando. Cuando esto ocurre, el miembro deberá completarse con su nombre de paquete.
JScript no admite la declaración de paquetes anidados; sólo pueden aparecer declaraciones de clase, interfaz y enumeración en un paquete. El nombre de paquete puede incluir un carácter '.' para indicar que se debe considerar como anidado dentro de otro paquete. Por ejemplo, un paquete con nombre Outer y otro con nombre Outer.Inner no tienen por qué tener una relación especial entre ellos; ambos son paquetes en el ámbito global. Sin embargo, los nombres implican que Outer.Inner se debe considerar como anidado dentro de Outer.
Ejemplo
El siguiente ejemplo define tres sencillos paquetes e importa los espacios de nombres en el script. Normalmente, cada paquete estaría en un ensamblado diferente para permitir el mantenimiento y la distribución del contenido del paquete.
// 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);
El resultado de este script es:
Greetings!
Bonjour!
Guten tag!
Eiffel Tower
meter
meter