Visualizzazione dei risultati da 1 a 6 su 6

Discussione: uso arraylist

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590

    uso arraylist

    sto esercitandomi un po' con java,
    ho una classe Banca che gestisce l'arrayList di conti correnti con metodi addAccount, removeAccount.
    e una classe BankAccount che gestisce il conto corrente con id, nome, saldo.

    la riga che da problemi è nel metodo addAccount: perché non posso creare un ArrayList nel costruttore di Banca e popolarlo con addAccount? così com'è eclipse mi dà errore.
    Prego di verificare anche la correttezza logica e formale della variabile autoid: dovrebbe essere una variabile statica che si autoincrementa e funziona, ma non sono sicuro che formalmente sia il metodo migliore.
    codice:
    package bankAccount;
    
    
    import java.util.ArrayList;
    
    
    public class Banca {
    
    
        public Banca(){
            ArrayList<BankAccount> BancoDiNapoli = new ArrayList();
            
        }
        public void addAccount(String name){
            BancoDiNapoli.add(new BankAccount(name));
        }
    }
    codice:
    public class BankAccount{    public static int autoid=0;
        public int id;
        private String name;
        private double balance;
        public BankAccount(String arg){
            id=autoid++;
            name=arg;
        }
        public BankAccount(){
            id=autoid++;
            name="Unknown";
        }
    [...]

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    Devi rendere la lista una variabile d'istanza accessibile anche dall'esterno del costruttore.
    Così come hai fatto tu la lista nasce e muore all'interno del costruttore.

    codice:
    package bankAccount;
    
    
    import java.util.ArrayList;
    
    
    public class Banca {
        private ArrayList<BankAccount> bancoDiNapoli;
    
        public Banca(){
            bancoDiNapoli = new ArrayList();
            
        }
        public void addAccount(String name){
            bancoDiNapoli.add(new BankAccount(name));
        }
    }
    Convenzionalmente i nomi delle variabili (non finali, per esse si usa dare un nome tutto maiuscolo) hanno la prima lettera in minuscolo.

    Ultima modifica di zipangulu; 10-03-2014 a 01:56

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590
    ma una classe può anche non avere un costruttore, giusto?
    in quel caso come si usa? se non posso chiamare il costruttore come uso l'oggetto e i metodi della classe?

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Il costruttore non è obbligatorio, se ti serve lo metti altrimenti no. Se non lo metti ne viene creato uno finto, che non fa "nulla".
    L'utilizzo non cambia.
    Ultima modifica di Alex'87; 10-03-2014 a 11:24
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da jimbo0 Visualizza il messaggio
    ma una classe può anche non avere un costruttore, giusto?
    Il programmatore può non definire alcun costruttore. Ma la classe almeno un costruttore ce l'ha sempre, perché se non viene definito alcun costruttore esplicito allora il compilatore ne mette uno di "default" che è senza parametri e fa solamente una chiamata super(); senza argomenti.
    Se il programmatore definisce almeno 1 costruttore esplicito, il costruttore di "default" non viene messo.

    Quote Originariamente inviata da jimbo0 Visualizza il messaggio
    in quel caso come si usa? se non posso chiamare il costruttore come uso l'oggetto e i metodi della classe?
    zipangulu ti ha fatto notare una cosa: nel costruttore di Banca hai definito una variabile locale che ovviamente non è visibile da altri metodi (es. addAccount). Devi avere una variabile di istanza, come ti ha mostrato zipangulu.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590
    devo dire che è abbastanza demoralizzante non ricordare queste banalità, se riguardo i codici scritti 4-5 anni fa c'è da non credere: gestione db e file, GUI molto complesse (che magari per un professionista sono cmq poca cosa..)..
    e ora sono tornato alle basi.. vabbè

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.