AspectJ: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 313:
====''Inter-Type declarations''====
In aspectj un aspetto può alterare la struttura stessa degli oggetti aggiunngendo ad essi metodi, attributi e costruttori oltre a quelli che già possiede. Bisogna però fare attenzione a non creare conflitti: i metodi, i costruttori e gli attributi che un aspetto aggiunge ad un oggetto non devono sovrapporsi a metodi, costruttori e attributi che l'oggetto già ha. In parole povere, un aspetto può aggiungere dei metodi, degli attributi o dei costruttori, purché non siano già definiti dall'oggetto stesso. Vale la pena ricordare che in java ogni classe definisce implicitamente un costruttore che non accetta argomenti, ed è percio un errore aggiungere a una classe un costruttore senza argomenti.
 
La sintassi delle inter-type declarations è molto semplice : la dichiarazione
public int Game.time ;
aggiunge un attributo di tipo intero e di nome 'timè alla classe Game, mentre
private String Ship.name ;
aggiunge un attributo di tipo stringa 'namèname alla classe Ship .è E' importante notare che questo attributo è stato dichiarato come privato dall' aspetto, e quindi questo attributo sarà visibile solo dai metodi e dagli advice dell'aspetto, ma non dai metodi della classe Ship.
 
Public int Game.score () {