PDA

View Full Version : [java] mi spiegate quest' errore?


bastado
27-08-2003, 17:42
data la seguente classe:

class Pubblicazione
{
String titolo, autore;
int pagine;
double prezzo;

public Pubblicazione ( String newtitolo, String newautore, int newpagine )
{
titolo = newtitolo;
autore = newautore;
pagine = newpagine;
prezzo = 0.10 * pagine;
}
String gettitolo () { return titolo; }
String getautore () { return autore; }
double getprezzo () { return prezzo; }
int getpagine() { return pagine; }

String settitolo ( String newtitolo ) { titolo = newtitolo; }
String setautore ( String newautore ) { autore = newautore; }
double setprezzo ( double newprezzo ) { prezzo = newprezzo; }
int setpagine ( int newpagine ) { pagine = newpagine; }

public String tostring ()
{
return titolo + " titolo " +
autore + " autore " +
prezzo + " prezzo " +
pagine + " pagine " ;
}
}


perche' mi da quest' errore?:

C:\Prep ex>javac Pubblicazione.java
Pubblicazione.java:19: missing return statement
String settitolo ( String newtitolo ) { titolo = newtitolo; }
^
Pubblicazione.java:20: missing return statement
String setautore ( String newautore ) { autore = newautore; }
^
Pubblicazione.java:21: missing return statement
double setprezzo ( double newprezzo ) { prezzo = newprezzo; }
^
Pubblicazione.java:22: missing return statement
int setpagine ( int newpagine ) { pagine = newpagine; }
^
4 errors

etonRifles
27-08-2003, 17:49
Nei 4 metodi:

String settitolo ( String newtitolo ) { titolo = newtitolo; }
String setautore ( String newautore ) { autore = newautore; }
double setprezzo ( double newprezzo ) { prezzo = newprezzo; }
int setpagine ( int newpagine ) { pagine = newpagine; }

hai specificato 4 tipi di ritorno differenti da void... come logico nel corpo dei metodi dovrebbe comparire l'istruzione return, teoricamente in questo modo:

String settitolo ( String newtitolo ) { titolo = newtitolo; return titolo;}
String setautore ( String newautore ) { autore = newautore; return autore;}
double setprezzo ( double newprezzo ) { prezzo = newprezzo; return prezzo;}
int setpagine ( int newpagine ) { pagine = newpagine; return pagine;}

qualora tu non voglia restituire alcun valore l'intestazione dei metodi andrebbe modificata come segue:

void settitolo ( String newtitolo ) { titolo = newtitolo; }
void setautore ( String newautore ) { autore = newautore; }
void setprezzo ( double newprezzo ) { prezzo = newprezzo; }
void setpagine ( int newpagine ) { pagine = newpagine; }

:D :D :D

bastado
27-08-2003, 17:55
Grazie mille!!:D :D :D ( effettivamente non avevo ancora capito bene l' uso di void e return
un' ultima cosa:muro: :muro: )

mi puoi dare un ultimoaiuto?

ho corretto cosi' il prog.:


public void String settitolo ( String newtitolo ) { titolo = newtitolo; }
public void String setautore ( String newautore ) { autore = newautore; }
public void double setprezzo ( double newprezzo ) { prezzo = newprezzo; }
public void int setpagine ( int newpagine ) { pagine = newpagine; }

ma mi da questo errore:

C:\Prep ex>javac Pubblicazione.java
Pubblicazione.java:19: '(' expected
public void String settitolo ( String newtitolo ) { titolo = newtitolo;
}
^
1 error

etonRifles
27-08-2003, 18:13
Hai messo due tipi di ritorno per ogni metodo

public void String settitolo ( String newtitolo ) { titolo = newtitolo; }
public void String setautore ( String newautore ) { autore = newautore; }
public void double setprezzo ( double newprezzo ) { prezzo = newprezzo; }
public void int setpagine ( int newpagine ) { pagine = newpagine; }

devi mantenere solo il void, cosė:

public void settitolo ( String newtitolo ) { titolo = newtitolo; }
public void setautore ( String newautore ) { autore = newautore; }
public void setprezzo ( double newprezzo ) { prezzo = newprezzo; }
public void setpagine ( int newpagine ) { pagine = newpagine; }

bastado
27-08-2003, 20:39
Ho capito grazie tante!