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.
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

generalekamikaze
Utente medio

0114_da_nala


Regione: Puglia
Prov.: Bari
Città: Gioia del colle


Inserito il - 04/03/2010 : 23:51:09  Mostra Profilo  Visita l'Homepage di generalekamikaze  Clicca per vedere l'indirizzo MSN di generalekamikaze  Invia a generalekamikaze un messaggio Yahoo! Invia a generalekamikaze un Messaggio Privato  Rispondi Quotando
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!!

Mauro84
Utente medio

Mauro


Regione: Puglia
Prov.: Bari


Inserito il - 05/03/2010 : 16:26:34  Mostra Profilo  Visita l'Homepage di Mauro84 Invia a Mauro84 un Messaggio Privato  Rispondi Quotando
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. ;)
Torna all'inizio della Pagina

generalekamikaze
Utente medio

0114_da_nala


Regione: Puglia
Prov.: Bari
Città: Gioia del colle


Inserito il - 05/03/2010 : 21:12:58  Mostra Profilo  Visita l'Homepage di generalekamikaze  Clicca per vedere l'indirizzo MSN di generalekamikaze  Invia a generalekamikaze un messaggio Yahoo! Invia a generalekamikaze un Messaggio Privato  Rispondi Quotando
Mmmm..Serializzando la classe...
Vabbè, grazie mille! Forse sarò in grado tra due anni!
Torna all'inizio della Pagina

Ilnero
Nuovo Utente


Regione: Puglia
Prov.: Taranto
Città: Mottola


Inserito il - 12/03/2010 : 21:54:49  Mostra Profilo  Visita l'Homepage di Ilnero  Clicca per vedere l'indirizzo MSN di Ilnero Invia a Ilnero un Messaggio Privato  Rispondi Quotando
per le date puoi usare la classe GregorianCalendar che ti consente di prendere la data direttamente dal sistema

Rappresentante SI per il CDL di Informatica Triennale
power by HP Pavillion dv2164eu AMD Turion64 X2 1.6Ghz RAM 1GB HD 120GB Ubuntu 9.10 64bit
Torna all'inizio della Pagina

generalekamikaze
Utente medio

0114_da_nala


Regione: Puglia
Prov.: Bari
Città: Gioia del colle


Inserito il - 16/03/2010 : 20:20:25  Mostra Profilo  Visita l'Homepage di generalekamikaze  Clicca per vedere l'indirizzo MSN di generalekamikaze  Invia a generalekamikaze un messaggio Yahoo! Invia a generalekamikaze un Messaggio Privato  Rispondi Quotando
Si, l'avevo già visto...
Era il retso il problema...
Torna all'inizio della Pagina

fozzy04
Utente medio

fractal


Regione: Puglia
Prov.: Bari
Città: Palo del Colle


Inserito il - 17/03/2010 : 19:31:41  Mostra Profilo  Visita l'Homepage di fozzy04 Invia a fozzy04 un Messaggio Privato  Rispondi Quotando
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.

"... io cerco di prendere dei muratori e farne degli architetti, ma voi sempre muratori rimanete! (F.Esposito)


Il mio sito MOLTO sperimentale http://effedigi.altervista.org
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,23 secondi.

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