Definire una classe User le cui istanze contengono il seguente campo:
Definire poi una classe Message le cui istanze contenengono i seguenti campi:
Per ogni classe si definiscano gli opportuni costruttori. In particolare, per la classe Message si definiscano i costruttori:
Il costruttore (2), a differenza del costruttore (1), dovrà creare l'oggetto di tipo User utilizzato nell'oggetto di tipo Message a partire dalla stringa fornita come parametro.Si definiscano poi un metodo di tipo ``get'' ed uno di tipo ``set'', per ogni campo presente nelle classi User e Message (e nelle classi che scriveremo in seguito!); ad esempio, per il campo from della classe Message:
Si definisca, per ogni classe introdotta e che introdurremo in futuro, il metodo
public String toString()che restituisce una stringa che rappresenta l'oggetto stesso in formato stampabile su console. Ad esempio, se messaggio è una variabile che contiente un riferimento ad un oggetto di tipo Message, allora messaggio.toString() restituisce una stringa che stampata dovrebbe risultare qualcosa del tipo:
> @matteo > Qualcuno e' gia' andato a vedere il film ``Il signore degli Anelli''? Vi e' piaciuto? Me lo consigliate? < @matteo <
Si definisca per la classe User il metodo
public boolean equals(User user)che restituisce true se l'utente passato come parametro ha stesso nickName dell'oggetto su cui è invocato il metodo, false altrimenti.
Si ricordi di scegliere (sapendo giustificarne il motivo) il tipo di visibilità (private? protected? public? default?) per ogni campo, metodo e classe.
Infine si definisca una classe ProvaMessaggio contenente un metodo main che effettui il test delle classi precedentemente definite.