|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
|
[JAVA] Inserire un contatore nel costruttore per identificare ogni oggetto creato?!?!
Allora ragazzi,
prima di tutto volevo ringraziarvi a tutti, perchè durante questo mio periodo di avvicinamento alla programmazione Java, mi sto appoggiando abbastanza su questo forum. Andiamo al problema: Ho costruito una classe ContoBancario che crea oggetti ti tipo ContoBancario, poi ho costruito un'altra classe che ereditaria di ContoBancario: ContoEsteso (per la creazione di un ContoBancario che avesse un fido, cioè poteva andare in rosso, mentre questo su un normale contobancario non è possibile).. ho messo nel costruttore un contatore, e volevo identificare ogni ContoBancario (Esteso e no) con un numero, basato su un contatore... mi spiego meglio: se è il primo contobancario creato il numero deve essere 1001, il secondo 1002.. 1003.. ecc ecc. Avevo pensato di mettere un contatore nel costruttore, e porre la variabile numero=1000+contatore... ma andiamo al codice: Classe ContoBancario fino al costruttore.. Codice:
package esamepoo.banca; public class ContoBancario{ private int numconto; protected double soldi; private int cnt=0; public ContoBancario(double soldi){ cnt=++; this.soldi=soldi; this.numconto=1000+cnt; } Codice:
package esamepoo.banca; public class ContoEsteso extends ContoBancario{ protected double fido; public ContoEsteso(double soldi){ super(soldi); fido=1000; } Codice:
import poo.inout.*; import esamepoo.banca.*; public class GestioneBanca{ public static void main(String args[]){ double soldi; final String SI="s"; final String NO="n"; String risp; int n=Console.readInt("Quanti Conti desideri inserire? "); ContoBancario clientela[]=new ContoBancario[n]; for(int i=0; i<clientela.length; i++){ System.out.println("Per il conto numero "+i+" vuoi un fido?"); risp=Console.readString("S/N: "); risp=risp.substring(0,1); risp=risp.toLowerCase(); if (risp.equals(SI)){ soldi=Console.readDouble("Quanti soldi nel conto (con fido) numero "+i+"?"); clientela[i]=new ContoEsteso(soldi); }else{ soldi=Console.readDouble("Quanti soldi nel conto (senza fido) numero "+i+"?"); clientela[i]=new ContoBancario(soldi); } } for(int i=0; i<clientela.length; i++) System.out.println("Il conto numero "+i+" risulta: "+clientela[i]); } } cosa sbaglio? come devo fare per far si che ad ContoBancario creato il contatore aumenti di uno? e quindi il numero di riferimento del conto sia =1000+contatore? Grazie ![]()
__________________
![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2004
Messaggi: 1449
|
Non ho tempo di leggere tutto il codice, ma devi semplicemente dichiarare la tua variabile contatore come static, se non fai cosi' perdi il valore e viene istanziata ogni volta una nuova.
__________________
Ciao ~ZeRO sTrEsS~ |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
|
Quote:
ho dovuto rendere static il contatore però!! perchè rendendo static il numero la situazione non cambiava, perchè nel costruttore avevo cnt++; numero=1000+cnt; rendendo static entrambi avevo in uscite (per esempio per 3 oggetti creati) numero del primo= 1003 numero del secondo= 1003 numero del terzo= 1003 rendendo solo statico il contatore ottengo la cosa giusta!! numero del primo= 1001 numero del secondo= 1002 numero del terzo= 1003 Grazie!! ![]()
__________________
![]() |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
|
Comunque,
perchè con static non perdo il valore e senza si?? Me le dai due righe di spiegazione please!!
__________________
![]() |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Mar 2004
Messaggi: 1449
|
Quote:
Spero di esser stato chiaro ![]()
__________________
Ciao ~ZeRO sTrEsS~ |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
|
Chiarissimo e Gentilissimo
![]() Grazie
__________________
![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Oct 2004
Messaggi: 752
|
Razionale, ContoBancario, ContoEsteso...
Ho già visto queste classi in qualche testo di programmazione, ma dove? ![]() |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
|
Unical.. università della calabria cosenza
![]()
__________________
![]() |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Oct 2004
Messaggi: 752
|
Prof. Nigro.
![]() |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
|
YES
![]()
__________________
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:41.