Il programmino del punto che rimbalza:


Usa l'implementazione "canvas" della classe astratta "raster". La keyword "as" fa il typecast sul registro "p", dicendogli che punta a un'istanza di canvas. In java, l'equivalente sarebbe una variabile di riferimento dichiarata come "tipo nome" ma non assegnata a un "new" qualcosa.
Un "raster" e` definito cosi`:


E gli unici metodi che implementa sono degli accessors per le dimensioni in pixels, che appunto sono le uniche cose che al momento hanno in comune canvas e bitmap, i due tipi concreti di raster. Gli altri sono signatures per metodi non implementati, che finiscono tutti in un'unica istruzione "leave" che ritorna al chiamante senza fare nulla. I campi dell'istanza sono descritti dai "count". Count e` un enumeratore progressivo: se non gli si dice diversamente, parte da zero e assegna la prima named constant a 0, la seconda a 1 e cosi` via. L'ultimo count da` la dimensione dell'istanza in unita` (cioe` in words del microprocessore).
L'implementazione "canvas", per esempio, poi implementa il costruttore "Create" cosi`:


facendo l'override della inlet "Create" nel nameset "raster", che e` esteso dal nameset "canvas" (per via della dichiarazione "nameset canvas extends raster"). Se dovesse dichiarare altri campi membri, dichiarerebbe altri count dopo "count from nSizeOfInstance" (risolta automaticamente nel nameset "raster", e la ridichiarerebbe (nel suo nameset) alla fine delle dichiarazioni "count".
Per curiosita`, canvas::Create alloca un canvassino di 1x1 pixels di default, se non viene ridimensionato, sicche` il bordo destro e inferiore sono tutti e due zero e width e height sono 1. Per ridimensionarlo c'e` canvas::SizeToByPixels (chiamato come "Size To larghezza;altezza Pixels"), oppure c'e` il costruttore alternativo canvas::CreateByPixels ("Create larghezza By altezza Pixels") che istanzia canvas e poi chiama subito (o meglio, si lascia "cadere" nel codice di) SizeToByPixels. E quello crea un canvas che inizialmente ha le dimensioni volute.
A me non sembra venuto male.
A me sembra esteticamente bello.