Istruzione package
Aggiornamento: novembre 2007
Consente di creare un package JScript nel quale è possibile creare agevolmente package di componenti denominati.
package pname {
[[modifiers1] pmember1]
...
[[modifiersN] pmemberN]
}
Argomenti
pname
Obbligatorio. Nome del package da creare.modifiers1, ..., modifiersN
Facoltativo. Modificatori che controllano la visibilità e il comportamento di pmember.pmember1, ..., pmemberN
Facoltativo. Definizione di una classe, di un'interfaccia o di un'enumerazione.
Note
All'interno di un package è consentito includere solo classi, interfacce ed enumerazioni. I membri del package possono essere contrassegnati con modificatori di visibilità per controllare l'accesso al membro. In particolare, il modificatore internal contrassegna un membro come visibile solo all'interno del package corrente.
Dopo avere importato un package, è possibile accedere ai relativi membri direttamente in base al nome, tranne quando un membro ha lo stesso nome di un'altra dichiarazione visibile nell'ambito di importazione. In tal caso, è necessario definire il membro in modo completo con il nome del relativo package.
In JScript non è supportata la dichiarazione di package nidificati. All'interno di un package possono essere presenti solo dichiarazioni di classi, interfacce ed enumerazioni. Il nome di un package può includere un carattere "." per indicare che deve essere considerato nidificato all'interno di un altro package. Un package denominato Outer e un altro denominato Outer.Inner, ad esempio, non si trovano necessariamente in reciproca relazione. Entrambi sono package appartenenti all'ambito globale. Tuttavia, come risulta evidente dai nomi, Outer.Inner deve essere considerato nidificato all'interno di Outer.
Esempio
Nell'esempio che segue vengono definiti tre semplici package e vengono importati all'interno dello script gli spazi dei nomi. In genere, ogni package viene incluso in un assembly distinto per consentire la manutenzione e la distribuzione del relativo contenuto.
// 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);
L'output dello script è il seguente:
Greetings!
Bonjour!
Guten tag!
Eiffel Tower
meter
meter