Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Array

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2019
    Messaggi
    23

    Array

    Salve,
    sempre a proposito della classe che dava eccezioni per essere compilata, ho fatto un array e le eccezioni sono diminuite, ma me ne resta una, come fare?
    Vi lascio il codice.
    P.S. la classe si deve solo compilare, poiché non prevede il main.
    Grazie a chi vorrà aiutarmi!
    Vi lascio il codice.
    codice:
    package EserciziJava.esercizio2;
    public class DatiArtista {
    public artisti() {
    Artista[] artisti = new Artista[100];
    artisti[0] = new Artista();
    artisti[1] = new Artista();
    artisti[2] = new Artista();
    artisti[3] = new Artista();
    artisti0.setNome("Antonello");
    artisti0.setCognome("Venditti");
    artisti0.setDataDiNascita(1949);
    artisti0.setBiografia("Cantautore Italiano, considerato fra i piu popolari e tra i piu prolifici della cosiddetta scuola Romana,dal 1972, anno del suo debutto discografico.");
    return artisti0;
    }
    }
    Ultima modifica di Lucym80; 20-11-2019 a 01:58

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,121
    Un primo errore:
    codice:
    public artisti() {

    Questo non è né un metodo, né un costruttore. Se fosse un costruttore dovrebbe chiamarsi "DatiArtista", poichè il costruttore deve obbligatoriamente avere lo stesso identico nome della classe e non dovrebbe avere alcuna istruzione return. Se fosse un metodo mancherebbe l'indicazione del tipo di ritorno (void se non dovesse ritornare nulla). Essendo che l'ultima istruzione è un return (tra l'altro sbagliato) di uno degli elementi dell'array (non si sa che senso abbia, ma non entro nel merito), allora dovrebbe essere un metodo e dovrebbe essere dichiarato in questo modo:
    codice:
    public Artista artisti() {

    Se, più correttamente, si volesse far ritornare l'intero array, allora dovrebbe essere dichiarato così:
    codice:
    public Artista[] artisti() {

    E il return alla fine dovrebbe essre semplicemente così:
    codice:
    return artisti;

    L'errore più evidente: mancano le parentesi quadre per indicizzare l'array. Le hai correttamente utilizzare per istanziare ciascun oggetto e poi non le hai più usate quando vai a richiamare i metodi degli oggetti o quando fai il return alla fine del primo elemento (sempre ammesso che fosse ciò che volevi, anche se ne dubito).
    codice:
    artisti[0] = new Artista();   // OK
    ...
    artisti0.setNome("Antonello");   // che fine hanno fatto le parentesi quadre attorno allo "0"?
    
    // così:
    artisti[0].setNome("Antonello");
    
    return artisti0;   // no
    
    return artisti[0];   // Se si vuole ritornare il primo elemento
    return artisti;   // Se si vuole ritornare l'intero array

    PS: Devi imparare ad indentare il codice altrimenti noi facciamo fatica a leggerlo e tu fai una fatica esponenziale rispetto alla nostra per stargli dietro.


    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2019
    Messaggi
    23
    Ciao, ok, grazie! In realtà devo caricare una serie di artisti e poi creare un archivio in modo che l'utente possa cercare per nome, per cognome eccetera e devo usare l'incapsulamento. E la prima volta che faccio gli array e l'incapsulamento, ecco perché faccio parecchia confusione. Per le parentesi, forse facendo le prove le ho tolte e mi sono sfuggite. Grazie per la pazienza! Ok, la prossima volta cercherò di fare l'indentazione. Ancora mille grazie!

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 © 2019 vBulletin Solutions, Inc. All rights reserved.