Classi e oggetti

Classi e oggetti

> Esercitazione LeekScript

Benvenuti nella documentazione sulla programmazione orientata agli oggetti (OOP) che consiste nella creazione di classi e oggetti per organizzare il codice. Questa funzione è stata aggiunta da LeekScript 2.

Oggetti

Gli oggetti sono valori che raggruppano più valori ciascuno associato a un nome. Questi valori sono chiamati proprietà o campi.

Creazione di un oggetto

Per creare un oggetto, usiamo la seguente sintassi:

In questo esempio, l'oggetto "object" ha due proprietà, "name" e "age".

Per creare un oggetto vuoto:

Accesso a una proprietà

Il punto . consente l'accesso a una proprietà di un oggetto:

Esiste una sintassi alternativa: object["prop"], che consente di utilizzare un valore stringa per accedere a una proprietà:

Modifica di una proprietà

Una volta effettuata l'accesso, una proprietà può essere modificata come una normale variabile:

Confronto tra oggetti

Gli operatori == e === confrontano solo se l'oggetto è lo stesso. Restituiscono false anche se i due oggetti hanno le stesse proprietà:

NB: === è deprecato a partire da LeekScript 4.

Elenco delle proprietà

Classi

Una classe è un modello per la creazione di oggetti.

Definizione di una classe

Definiamo una classe Weapon con i 4 campi denominati in questo modo:

Creazione di un oggetto con una classe

Il nuovo è in realtà facoltativo, una classe è simile a una funzione e può essere chiamata direttamente per creare un oggetto:

Puoi recuperare la classe di un oggetto usando .class:

istanza di

La parola chiave instanceof viene utilizzata per verificare se un oggetto è un'istanza di una classe:

Costruttori

Un costruttore è una funzione definita in una classe che permette di creare un oggetto da un elenco di parametri. Definiamo un costruttore come questo:

Utilizzando un costruttore:

Metodi

Un metodo è una funzione definita in una classe e utilizzabile su un oggetto di questa classe. Definiamo un metodo come questo:

Usiamo un metodo con la sintassi:

Funziona anche la sintassi object["member"]:

Non è consigliabile utilizzarlo, il rischio di sbagliare è abbastanza forte.

Sovraccarico

È possibile sovraccaricare i metodi semplicemente modificando il numero di parametri

È quindi possibile utilizzare il metodo con uno o due parametri a scelta:

Eredità

La nozione di ereditarietà consente di creare una gerarchia di classi. Usiamo questa sintassi con la parola chiave extends. Stiamo cercando di dichiarare una classe "base" da cui possono essere costruite altre classi. Le classi che ereditano ricevono tutti i membri (variabili) e metodi (funzioni) della classe base e possono ridefinirli o aggiungerne di nuovi