|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Sep 2008
Messaggi: 91
|
[java] errore esecuzione metodo
Ho realizzato un programma in java.
Questa è la prima classe; Codice:
package temperatura; import java.io.*; public class Temperatura implements Serializable { private String città, data; private double temperatura; public Temperatura(String città, String data, double temperatura) { this.città = città; this.data = data; this.temperatura = temperatura; } public void setCittà(String città) { this.città = città; } public void setData(String data) { this.data = data; } public void setTemperatura(double temperatura) { this.temperatura = temperatura; } public String getCittà() { return città; } public String getData() { return data; } public double getTemperatura() { return temperatura; } } Codice:
package temperatura; import java.io.*; public class Main { public void aggiungi() { try { BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); ObjectOutputStream scrivioggetto = new ObjectOutputStream(new FileOutputStream("temperatura.dat")); System.out.println("Dammi data: "); String data = input.readLine(); System.out.println("Dammi temperatura: "); String line = input.readLine(); double temperatura = Double.parseDouble(line); System.out.println("Dammi città: "); String città = input.readLine(); Temperatura t1 = new Temperatura(città, data, temperatura); scrivioggetto.writeObject(t1); scrivioggetto.close(); } catch (IOException eccezione) { eccezione.getMessage(); } catch (Exception eccezione) { eccezione.getMessage(); } } public static void main(String[] args) throws Exception { try { Temperatura m1 = new Temperatura(); m1.aggiungi(); ObjectInputStream leggi = new ObjectInputStream(new FileInputStream("temperature.dat")); boolean finefile = false; while (finefile == false) { Temperatura t1 = (Temperatura) leggi.readObject(); if (t1 == null) { finefile = true; } else { System.out.println("Città: " + t1.getCittà() + ", data: " + t1.getData()); for (int i = 0; i < t1.getTemperatura(); i++) { System.out.print("#"); } } } leggi.close(); } catch (IOException eccezione) { eccezione.getMessage(); } catch (Exception eccezione) { eccezione.getMessage(); } } } Codice:
Temperatura m1 = new Temperatura(); m1.aggiungi(); Codice:
symbol : constructor Temperatura() location: class temperatura.Temperatura Temperatura m1 = new Temperatura(); symbol : method aggiungi() location: class temperatura.Temperatura m1.aggiungi(); Vorrei che il mio oggetto sia inizializzato con nessun valore. (nel metodo aggiungi infatti i valori li fornisco io) Grazie anticipatamente. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 1242
|
Creati un altro costruttore che non abbia bisogno di parametri.
__________________
Concertina: "I know the truth is in between the 1st and 40th drink" |
![]() |
![]() |
![]() |
#3 | |
Member
Iscritto dal: Sep 2008
Messaggi: 91
|
Quote:
|
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
usa il costruttore che hai già. Anzichè "new Temperatura()" scrivi:
new Temperatura(null, null, null, 0);
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Sep 2008
Messaggi: 91
|
Non funziona lo stesso:
Codice:
Temperatura m1 = new Temperatura(null, null, null, 0); m1.aggiungi(); Codice:
symbol : constructor Temperatura(<nulltype>,<nulltype>,<nulltype>,int) location: class temperatura.Temperatura Temperatura m1 = new Temperatura(null, null, null, 0); symbol : method aggiungi() location: class temperatura.Temperatura m1.aggiungi(); |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Sì, perché in realtà i parametri erano 3:
Codice:
new Temperatura(null, null, 0) |
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Sep 2008
Messaggi: 91
|
Ok, grazie.
Ora il problema rimane questo: Codice:
symbol : method aggiungi() location: class temperatura.Temperatura m1.aggiungi(); Codice:
try { ObjectInputStream leggi = new ObjectInputStream(new FileInputStream("temperature.dat")); boolean finefile = false; while (finefile == false) { Temperatura t1 = (Temperatura) leggi.readObject(); if (t1 == null) { finefile = true; } else { System.out.println("Città: " + t1.getCittà() + ", data: " + t1.getData()); for (int i = 0; i < t1.getTemperatura(); i++) { System.out.print("#"); } } } leggi.close(); } catch (IOException eccezione) { eccezione.getMessage(); } catch (Exception eccezione) { eccezione.getMessage(); } Come mai? |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Perché il metodo aggiungi è un metodo di Main, non di Temperatura. Mi dai l'impressione di non conoscere molto il linguaggio che stai utilizzando. Se è così ti consiglio di leggerti un buon libro per colmare le lacune.
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:21.