Klasser och objekt

Klasser och objekt

> LeekScript handledning

Välkommen till dokumentationen om objektorienterad programmering (OOP) som består av att skapa klasser och objekt för att organisera din kod. Den här funktionen lades till från LeekScript 2.

Föremål

Objekt är värden som grupperar flera värden som var och en är associerad med ett namn. Dessa värden kallas egenskaper eller fält.

Skapa ett objekt

För att skapa ett objekt använder vi följande syntax:

I det här exemplet har objektet 'objekt' två egenskaper, 'namn' och 'ålder'.

Så här skapar du ett tomt objekt:

Tillgång till en fastighet

Punkten . tillåter åtkomst till en egenskap för ett objekt:

En alternativ syntax finns: object["prop"], som tillåter att använda ett strängvärde för att komma åt en egenskap:

Ändra en egenskap

När den väl har kommit åt kan en egenskap ändras som en normal variabel:

Objektjämförelse

Operatörerna == och === jämför bara om objektet är detsamma. De returnerar "false" även om de två objekten har samma egenskaper:

OBS: === är utfasad från och med LeekScript 4.

Lista över fastigheter

Klasser

En klass är en modell för att skapa objekt.

Definiera en klass

Vi definierar en "vapen"-klass med de fyra fälten som heter så här:

Skapa ett objekt med en klass

Den nya är faktiskt valfri, en klass liknar en funktion och kan anropas direkt för att skapa ett objekt:

Du kan hämta klassen för ett objekt med .class:

instans av

Nyckelordet instanceof används för att kontrollera om ett objekt är en instans av en klass:

Byggare

En konstruktor är en funktion definierad i en klass som tillåter att skapa ett objekt från en lista med parametrar. Vi definierar en konstruktor så här:

Använda en konstruktor:

Metoder

En metod är en funktion definierad i en klass och användbar på ett objekt av denna klass. Vi definierar en metod så här:

Vi använder en metod med syntaxen:

objekt["medlem"]-syntaxen fungerar också:

Det är inte tillrådligt att använda det, risken att göra fel är ganska stor.

Överbelastning

Det är möjligt att överbelasta metoder genom att helt enkelt ändra antalet parametrar

Du kan sedan använda metoden med en eller två parametrar som du väljer:

Legacy

Begreppet arv gör det möjligt att skapa en hierarki av klasser. Vi använder denna syntax med nyckelordet extends. Vi försöker deklarera en "basklass" från vilken andra klasser kan byggas. Klasser som ärver får alla medlemmar (variabler) och metoder (funktioner) i basklassen och kan omdefiniera dem eller lägga till nya.