Creazione di classi personalizzate
L'istruzione class consente di definire classi. Per impostazione predefinita, i membri di classe sono accessibili pubblicamente. Pertanto, il codice che può accedere alla classe può anche accedere al membro della classe. Per ulteriori informazioni vedere Modificatori JScript.
Classi con campi
I campi definiscono i dati utilizzati da un oggetto e sono simili alle proprietà di un oggetto basato su un prototipo. Quello che segue è un esempio di semplice classe con due campi. Mediante l'operatore new viene creata un'istanza della classe:
class myClass {
const answer : int = 42; // Constant field.
var distance : double; // Variable field.
}
var c : myClass = new myClass;
c.distance = 5.2;
print("The answer is " + c.answer);
print("The distance is " + c.distance);
L'output del programma è il seguente:
The answer is 42
The distance is 5.2
Classi con metodi
Le classi possono anche contenere metodi, che sono funzioni contenute all'interno della classe. I metodi definiscono le funzionalità per la modifica dei dati di un oggetto. La classe myClass definita in precedenza può essere ridefinita per includere un metodo.
class myClass {
const answer : int = 42; // Constant field.
var distance : double; // Variable field.
function sayHello() :String { // Method.
return "Hello";
}
}
var c : myClass = new myClass;
c.distance = 5.2;
print(c.sayHello() + ", the answer is " + c.answer);
L'output del programma è il seguente:
Hello, the answer is 42
Classi con costruttori
È possibile definire un costruttore per una classe. Un costruttore, che rappresenta un metodo con lo stesso nome della classe, viene eseguito quando una classe viene creata utilizzando l'operatore new. Non è necessario specificare il tipo restituito dal costruttore. In questo esempio viene aggiunto un costruttore alla classe myClass:
class myClass {
const answer : int = 42; // Constant field.
var distance : double; // Variable field.
function sayHello() :String { // Method.
return "Hello";
}
// This is the constructor.
function myClass(distance : double) {
this.distance = distance;
}
}
var c : myClass = new myClass(8.5);
print("The distance is " + c.distance);
L'output del programma è il seguente:
The distance is 8.5