On Wed, Nov 20, 2002 at 03:01:43PM +0100, Filippo Fuschini wrote: > > Ciao Massimiliano > > Ti volevo esporre il problema come tu stesso hai scritto st? eseguendo in > pieno quello che hai detto di fare di creare una classe personaggio e creare > i metodi come segue: > > class Personaggio{ > public Personaggio(String _getNome, String _getCognome){ > getNome = _getNome; > getCognome = _getCognome; > } > public String getNome(){ > return getNome; > } > public String getCognome(){ > return getCognome; > } > public String addMovie(String titolo){ > return titolo; > } > public int getMovie(int posizione){ > return posizione; > } > public String getAllMovies(String titoli){ > return titoli; > } > public String toString(){ > //Questo metodo mi fa restituire nome cognome e mi da con gli > apici anche lo spazio > return getNome +" " + getCognome; > //+ " " + titolo; > } > private String getNome; > private String getCognome; > } > > > Dopo aver compilato questo codice con "il titolo in commento" l'errore ? uno > solo ovvero mi dice: > Tests.java:66: getAllMovies(java.util.Vector) in Personaggio cannot be > applied to () > > Vector all = p.getAllMovies(); > > ^ > > 1 error Non mi torna qualcosa. Quando il compilatore dice: getAllMovies(java.util.Vector) in Personaggio cannot be applied to () ...significa che in Personaggio c'e` un metodo getAllMovies che prende un Vector come parametro. Pero`, nel testo che mi hai riportato, il metodo getAllMovies prende una stringa come parametro. Sicuro che l'errore si riferisca proprio al testo che hai riportato tu e non a un'altra versione? In ogni caso, l'errore significa: ``Hai chiamato il metodo getAllMovies senza parametri, ma il metodo getAllMovies che conosco io prende un vettore come parametro.'' > Se tolgo il metodo invece mi dice: > > Tests.java:66: cannot resolve symbol > > symbol : method getAllMovies () > > location: class Personaggio > > Vector all = p.getAllMovies(); > > ^ > > 1 error Naturale, perche' chiami un metodo che non c'e`. > > Allora la mie domande sono le seguenti: > > 1) La creazione della classe Personaggio da me iniziata ? corretta? Si puo` migliorare. Guarda bene i test presenti in testDefinisciNuovaClasse e basati su di essi. Per esempio: p.addMovie("La finestra sul cortile"); Questo test richiede che addMovie restituisca qualcosa? No, perche' non c'e` nessuna variabile a ricevere un eventuale valore di ritorno. Quindi nella seguente intestazione nella classe Personaggio: public String addMovie(String titolo){ ...c'e` piu` del necessario. addMovie, cosi`, restituisce una stringa, mentre tu non vuoi che restituisca alcunche', per cui: public void addMovie(String titolo) { Qualche riga piu` giu`, nei test, hai questo: System.out.println("Primo film: " + p.getMovie(0)); Cioe` andiamo a ripescare il primo film che abbiamo inserito. Questo implica che addMovie avra` provveduto a mettere in qualche contenitore i film che gli abbiamo passato in precedenza... (consiglio: di contenitore ne conosciamo uno solo, c'e` poco da sbagliarsi!) > 2)Perch? il tiutolo non deve essere restituito insieme a nome e > cognome? Perche' un personaggio ha un solo nome e un solo cognome (-> variabili di istanza) ma puo` essere in molti film (-> contenitore). > 3)Devo creare un vettore nella classe? Lo devo creare nel main? Come > devo fare? HELP?????????? Lo devi creare nella classe che conosce i film interpretati. Chi conosce i film? Il Personaggio o un TestPersonaggio? Aiutati con le carte CRC, la risposta e` lampante. Invito voialtri che state leggendo a commentare ulteriormente l'abbozzo di classe che ha scritto Filippo. Cosa scrivereste diversamente?