Die Funktion von "self" habe ich noch nicht wirklich Begriffen.
self ist ähnlich zu this. Da this aber eine Referenz auf das aktuelle Objekt ist und statische Eigenschaften und Methoden jedoch nicht mit einer Instanz einer Klasse verknüpft werden können sondern "klassenglobal" für alle Instanzen einer Klasse gelten, musst Du auf statische Eigenschaften über self zugreifen.