Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Questione di Tipi

  1. #1

    Questione di Tipi

    Ciao a tutti... Spero possiate darmi una mano perchè non sò dove sbattere la testa.
    In questa classe ho cercato di creare un arraylist di oggetti "Persona"(e anche di altri oggetti, ma già con Persona non funziona) il quale ha al suo interno un metodo getNome() che dovrebbe restituire il nome in formato Stringa. Ovviamente non funziona... ma non capisco il perchè. Avreste qualche consiglio??? Vi prego...
    import java.util.ArrayList;
    /**
    * La classe Archivio è necessaria per creare le collezioni degli oggetti "Persona"
    * "Oggetto" e "Prestito".
    */
    public class Archivio
    {
    // Riserva lo spazio per un numero arbitrario di oggetti Persona
    private ArrayList perx;

    //Riserva lo spazio per un numero arbitrario di oggetti Oggetto
    private ArrayList oggx;

    //Riserva lo spazio per un numero arbitrario di oggetti Prestito
    private ArrayList prestx;

    //Variabile d'oggetto persona
    private Persona tue;




    /**
    * Constructor for objects of class Archivio
    */
    public Archivio()
    {
    perx = new ArrayList();
    oggx = new ArrayList();
    prestx = new ArrayList();
    }

    /**
    * Metodo per l'inserimento di un nuovo oggetto Persona nell'archivio
    */
    public void insertPersona(Persona per)
    {
    tue = new Persona();

    tue = per;

    // Aggiunta della persona nell'archivio
    perx.add(tue);
    }



    /**
    * Metodo per l'inserimento di un nuovo oggetto Oggetto nell'archivio
    */
    public void insertOggetto(Oggetto ogg)
    {
    //Aggiunta dell'oggetto nell'archivio
    oggx.add(ogg);
    }



    /**
    * Metodo per l'inserimento di un nuovo oggetto Prestito nell'archivio
    */
    public void inserPrestito(Oggetto pre)
    {
    //Aggiunta del prestito nell'archivio
    prestx.add(pre);
    }



    /**
    * Metodo per la restituzione delle persone dell'array
    */
    public void getPersona(int i)
    {


    System.out.println(perx.get(i).getNome);




    }



    }
    Ogni popolo ha il governo che si merita...

  2. #2

    Re: Questione di Tipi

    Originariamente inviato da GANDULE
    Ciao a tutti... Spero possiate darmi una mano perchè non sò dove sbattere la testa.
    In questa classe ho cercato di creare un arraylist di oggetti "Persona"(e anche di altri oggetti, ma già con Persona non funziona) il quale ha al suo interno un metodo getNome() che dovrebbe restituire il nome in formato Stringa. Ovviamente non funziona... ma non capisco il perchè. Avreste qualche consiglio??? Vi prego...
    import java.util.ArrayList;
    /**
    * La classe Archivio è necessaria per creare le collezioni degli oggetti "Persona"
    * "Oggetto" e "Prestito".
    */
    public class Archivio
    {
    // Riserva lo spazio per un numero arbitrario di oggetti Persona
    private ArrayList perx;

    //Riserva lo spazio per un numero arbitrario di oggetti Oggetto
    private ArrayList oggx;

    //Riserva lo spazio per un numero arbitrario di oggetti Prestito
    private ArrayList prestx;

    //Variabile d'oggetto persona
    private Persona tue;




    /**
    * Constructor for objects of class Archivio
    */
    public Archivio()
    {
    perx = new ArrayList();
    oggx = new ArrayList();
    prestx = new ArrayList();
    }

    /**
    * Metodo per l'inserimento di un nuovo oggetto Persona nell'archivio
    */
    public void insertPersona(Persona per)
    {
    tue = new Persona();

    tue = per;

    // Aggiunta della persona nell'archivio
    perx.add(tue);
    }



    /**
    * Metodo per l'inserimento di un nuovo oggetto Oggetto nell'archivio
    */
    public void insertOggetto(Oggetto ogg)
    {
    //Aggiunta dell'oggetto nell'archivio
    oggx.add(ogg);
    }



    /**
    * Metodo per l'inserimento di un nuovo oggetto Prestito nell'archivio
    */
    public void inserPrestito(Oggetto pre)
    {
    //Aggiunta del prestito nell'archivio
    prestx.add(pre);
    }



    /**
    * Metodo per la restituzione delle persone dell'array
    */
    public void getPersona(int i)
    {


    System.out.println(perx.get(i).getNome);




    }



    }
    A cosa ti serve la variabile tue?

    /**
    * Metodo per l'inserimento di un nuovo oggetto Persona nell'archivio
    */
    public void insertPersona(Persona per)
    {
    tue = new Persona();

    tue = per;

    // Aggiunta della persona nell'archivio
    perx.add(tue);
    }

    perchè qui crei una nuova persona "vuota"?

    basterebbe:

    Codice PHP:
    public void insertPersona(Persona per)
    {
             
    // Aggiunta della persona nell'archivio
                
    perx.add(per);

    In ogni caso posta anche il codice della classe Persona, ed eventuali errori segnalati

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Originariamente inviato da hurricane86
    In ogni caso posta anche il codice della classe Persona, ed eventuali errori segnalati
    ... utilizzando gli appositi tag [code] e [/code] per mantenerne l'indentazione e la leggibilità, come scritto nel regolamento.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    ecco il codice...

    codice:
    public class Archivio
    {
        // Riserva lo spazio per un numero arbitrario di oggetti Persona
        private ArrayList perx;
        
        //Riserva lo spazio per un numero arbitrario di oggetti  Oggetto
        private ArrayList oggx;
        
        //Riserva lo spazio per un numero arbitrario di oggetti Prestito
        private ArrayList prestx;
        
        
        
        
        /**
         * Constructor for objects of class Archivio
         */
        public Archivio()
        {
            perx = new ArrayList();
            oggx = new ArrayList();
            prestx = new ArrayList();
        }
    
        /**
         * Metodo per l'inserimento di un nuovo oggetto Persona nell'archivio
         */
        public void insertPersona(Persona per)
        {
            
            // Aggiunta della persona nell'archivio
            perx.add(per);
            
            // Verifico se quà funziona
            System.out.println(per.getNome());
            
            
        }
        
        
        
        /**
         * Metodo per l'inserimento di un nuovo oggetto Oggetto nell'archivio
         */
        public void insertOggetto(Oggetto ogg)
        {
            //Aggiunta dell'oggetto nell'archivio
            oggx.add(ogg);
        }
        
        
        
        /**
         * Metodo per l'inserimento di un nuovo oggetto Prestito nell'archivio
         */
        public void inserPrestito(Oggetto pre)
        {
            //Aggiunta del prestito nell'archivio
            prestx.add(pre);
        }
        
        
        
        /**
         * Metodo per la restituzione delle persone dell'array
         */
        public void getPersona(int i)
        {
            
            //Qua non funziona
            
            System.out.println(perx.get(i).getNome());
            System.out.println(perx.get(i).getCognome());
            
        }
        
        
        /**
         * Metodo per la restituzione degli oggetti dell'arrya
         */
        public void getOggetto(int i)
        {
            //Qua non funziona
            
            System.out.println(oggx.get(i).getNome());
            System.out.println(
        }

    e questa è la classe persona...


    codice:
    public class Persona
    {
        // Le variabili di questa classe sono
        private String nome;
        private String cognome;
        private int affidabilita;
        private String citta;
        private String indirizzo;
        private String mail;
        private String telefono;
        
    
      
            
        /**
         * Costruttore degli oggetti della classe Persona
         */
        public Persona(String no, String co, String ci, String indi, String mai, String tel)
        {
            // Inizializzazione delle varibili dell'oggetto
            nome = no;
            cognome = co;
            //affidabilita = affi;
            citta = ci;
            indirizzo = indi;
            mail = mai;
        }
    
        /**
         * Metodo per la restituzione del dato nome.
         * 
        */
        public String getNome()
        { 
            // Restituzione del nome della persona
            return nome;
        }
        
        
        /**
         * Metodo per la restituzione del dato cognome.
         */
        public String getCognome()
        {
            // Restituzione del cognome della persona
            return cognome;
        }
        
        
        /**
         * Metodo per la restituzione del dato citta.
         */
        public String getCitta()
        {
            // Restituzione della citta della persona
            return citta;
            
        }
        
        
        /**
         * Metodo per la restituzione dell'affidabilità del soggetto
         */
        public int getAffidabilita()
        {
            //Restituzione dell'affidabilità della persona
            return affidabilita;
        }    
    }
    Ogni popolo ha il governo che si merita...

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Senza usare i "generics", i metodi che estraggono gli elementi dalle collezioni hanno come tipo di ritorno Object. Quindi è ovvio che nessuno di quei metodi che poi invochi esiste in Object!!!

    Devi fare un cast al tipo degli oggetti presenti realmente nella collezione.

    ((Persona) perx.get(i)).tuoMetodoInPersona()
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Si è vero... funziona... scusate ma ho la testa che sta andando in tilt...

    Grazie 1000 trovo sempre gente efficentissima
    Ogni popolo ha il governo che si merita...

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.