Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    3

    Errore nel riempimento di un array ad oggetti

    Qualcuno mi sa dire perchè Java mi da un errore nella righa di codice indicata con la freccia? Grazie in antiipo

    public class Persone_T {

    public static void main(String[] args) {
    ...
    Persona[] a= new Persona[4];
    /* a[0].add_dati("Giacomo", "Cavallo", 1991);
    a[1].add_dati("Anna", "Cavallo", 1959);
    a[2].add_dati("Martino", "Franco", 1992);
    a[3].add_dati("Giacomo", "Cavallo", 1980);
    **/

    a[0].n="Giacomo"; //<---
    a[0].c="Cavallo";
    a[0].a=1991;
    a[1].n="Anna";
    a[1].c="Cavallo";
    a[1].a=1959;
    a[2].n="Martino";
    a[2].c="Franco";
    a[2].a=1992;
    a[3].n="Giacomo";
    a[3].c="Cavallo";
    a[3].a=1980;

    for (int i=0;i<4;i++){
    System.out.println(a[i].nome() + " " + a[i].cognome() + " "+ a[i].anno() );
    }
    }

    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Errore nel riempimento di un array ad oggetti

    Originariamente inviato da jack_c
    Persona[] a= new Persona[4];
    /* a[0].add_dati("Giacomo", "Cavallo", 1991);
    a[1].add_dati("Anna", "Cavallo", 1959);
    a[2].add_dati("Martino", "Franco", 1992);
    a[3].add_dati("Giacomo", "Cavallo", 1980);
    **/

    a[0].n="Giacomo"; //<---
    Hai istanziato un array di tipo Persona di 4 elementi. Ma contiene inizialmente solo dei null, devi istanziare tu gli oggetti Persona e assegnarli agli elementi dell'array.

    La istanziazione di un array di per sé non istanzia null'altro a parte l'array.


    P.S. per essere ancora più chiaro: facendo new Persona[4] hai istanziato l'array ... non anche 4 oggetti Persona!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    3
    Scusa la mia ignoranza, ma sono nuovo in java, non è che mi potresti fare un esempio? Grazie in anticipo

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    L'array a che crei è un array di tipo Persona, questo significa che devi inserire degli oggetti di tipo Persona (o compatibili).

    codice:
    a[0].add_dati(new Persona("Giacomo", "Cavallo", 1991));
    a[1].add_dati(new Persona("Anna", "Cavallo", 1959));
    Io ho supposto che il costruttore di persona riceva Nome, Cognome, Anno.
    E stesso procedimento per tutti gli altri...


    Comunque ti conviene aprire il libro e studiare questi concetti base, altrimenti avrai molte difficoltà

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Meglio così:

    codice:
    a[0] = new Persona("Giacomo", "Cavallo", 1991);
    a[1] = new Persona("Mario", "Rossi", 1990);
    ...
    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

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    3
    Fatto!! Grazie mille a tutti!!

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.