Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 Cultura Informatica
 Corso di java
 Programmino idiota.

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista Inserisci Faccine
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Smilies
Approvazione [^] Arrabbiato [:(!] Bacio [:X] Bevuta [:273]
Caldo [8D] Compiaciuto [8)]    
compleanno [:269]
Davvero Felice [:D] Diavoletto [}:)] Disapprovazione [V] Domanda [?]
Felice [:)] Fumata [:29] Goloso [:P] Imbarazzato [:I]
Infelice [:(] Morte improvvisa da [:62]
Morto [xx(] Occhio Nero [B)] Occhiolino [;)] Palla 8 [8]
pc [:205]    
Riproduzione [:76]
Scioccato [:O]      

   Allega file
  Clicca qui per inserire la tua firma nel messaggio.
Clicca qui per sottoscrivere questa Discussione.
    

V I S U A L I Z Z A    D I S C U S S I O N E
generalekamikaze Inserito il - 04/03/2010 : 23:51:09
Salve ragazzi.
Stavo cercando d scrivere un mio programmino(sono davvero alle prime armi), per la gestione di un mio conto personale.
Non vi stò a spiegare nei particolari.
Il problema semplicemente è questo.
La mia intenzione è scrivere la classe con i vari metodi, e naturalmente la classe di tester da lanciare ogni volta per aggiornare il conto.
La mia piccola esperienza di """""programmatore""""" mi ha portatop a ciò che segue:


import java.util.Date;
public class ContoDigiview {

	
	public ContoDigiview()
	{
		totale = tot;
		quantità = num;
		data = dat;
	}
	
	public void add(int numero)
	{
		double nuovoTotale = 7.5 * numero;
		totale = totale + nuovoTotale;
		int nuovoNumero = quantità + numero;
		quantità = nuovoNumero;
		num = quantità;
		tot = totale;
	}
	
	public void ritiro(double somma)
	{
		double nuovoTotale = totale - somma;
		totale = nuovoTotale;
		tot = totale;
	}
	

	public void aggData()
	{
		Date ogg = new Date();
        int day = ogg.getDate();
        int month = ogg.getMonth();
        int year = ogg.getYear();
		data = day + "/" + month + "/" + year; 
		dat = data;
	}
	
	public void altroBonus(double somma)
	{
		double nuovoTotale = totale + somma;
		totale = nuovoTotale;
		tot = totale;
	}
	
	public String getData()
	{
		return dat;
	}
	
	public int getQuantità()
	{
		return num;
	}
	
	public double getTotale()
	
	{
		return tot;
	}
	
	private double totale;
	private int quantità;
	private String data;
	private static double tot = 10.5;
	private static int num = 97;
	private static String dat = "19/02/2010";
}




import java.util.Scanner;
public class ContoDigiviewRun {

	public static void main(String[] args) {
		
	    Scanner in = new Scanner(System.in);
	    System.out.println("Azione da eseguire (ritiro/aggiungi/altro/totale)");
	    String scelta = in.nextLine();
	    String rit = "ritiro";
	    String agg = "aggiungi";
	    String other = "altro";
	    String tot = "totale";
		ContoDigiview mio = new ContoDigiview();
	    if (scelta.compareToIgnoreCase(rit)==0)
		{
	        Scanner riti = new Scanner(System.in);
	        System.out.println("Inserisci importo ritirato:");
	       	mio.ritiro(riti.nextDouble());
	       	mio.aggData();
		}
	    if (scelta.compareToIgnoreCase(agg)==0)
	    {
	    	Scanner add = new Scanner(System.in);
	    	System.out.println("Numero di operazioni effettuate:");
	    	mio.add(add.nextInt());
	    	mio.aggData();
	    }
	    if (scelta.compareToIgnoreCase(other)==0)
	    {
	    	Scanner oth = new Scanner(System.in);
	    	System.out.println("Inserisci altro accredito");
	    	mio.altroBonus(oth.nextDouble());
	    	mio.aggData();
	    }
	    if (scelta.compareToIgnoreCase(tot)==0)
	    {}
		System.out.println("Il totale del conto è: " + mio.getTotale() + " €");
		System.out.println("Hai effettuato " + mio.getQuantità() );
		System.out.println("L'ultimo aggiornamento è del " + mio.getData());
		
	}

}



Il mio problema sostanziale risiede nel fatto che, ogni volta che lancio il run, il totale, la data e la quantità (le statiche per intenderci), vengono inizializzate ogni volta.
Cosa che va contro la mia idea di "variabile statica"!!!
Come posso fare ad aggiornare le variabili statiche ad ogni run, senza che venga ogni volta "azzerata"?


Grazie, e comprendetemi, sono solo pochi mesi che ho iniziato a programmare!!!

P.S. Non badate al metodo che aggiorna la data, verrà modificato con una classe più decente appena sistemo il problema principale!!
5   U L T I M E    R I S P O S T E    (in alto le più recenti)
fozzy04 Inserito il - 17/03/2010 : 19:31:41
Citazione:
Messaggio inserito da generalekamikaze

Mmmm..Serializzando la classe...
Vabbè, grazie mille! Forse sarò in grado tra due anni!



In effetti per mantenere memoria di variabili di precedenti sessioni, o serializzi le variabili, oppure utilizzi un piccolo DB (magari con una sola tabella) giusto per provare.

Per quanto riguarda la serializzazione non è che si può spiegare in due parole, le variabili vengono salvate brutalmente in un unico file su disco prima di chiudere il programma; al prossimo run, vai a leggere il file e carichi il contenuto nelle variabili, così ritrovi la stessa situazione della precedente sessione.
generalekamikaze Inserito il - 16/03/2010 : 20:20:25
Si, l'avevo già visto...
Era il retso il problema...
Ilnero Inserito il - 12/03/2010 : 21:54:49
per le date puoi usare la classe GregorianCalendar che ti consente di prendere la data direttamente dal sistema
generalekamikaze Inserito il - 05/03/2010 : 21:12:58
Mmmm..Serializzando la classe...
Vabbè, grazie mille! Forse sarò in grado tra due anni!
Mauro84 Inserito il - 05/03/2010 : 16:26:34
Gli attributi statici non sono specifici dell'oggetto costruito, ma vengono condivisi da tutti gli oggetti dello stesso tipo.
Serializzando la classe credo che risolveresti il tuo problema. ;)

Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,08 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000