Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Incomprensione codice

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339

    Incomprensione codice

    Ciao a tutti.

    Mi sono imbattuto in un metodo chiamato "estrai" che deve restituire un oggetto di tipo ContenitoreDati<E>.

    codice:
    public ContenitoreDati<E> estrai(Criterio<E> c){
      ContenitoreDati<E> risultato = creaContenitore();
     ....
     .....
     ......
    Tralasciando cosa fa il metodo ; ho notato che l'oggetto ContenitoreDati<E> risultato , che è quello che deve essere restituito , viene creato con l'istruzione creaContenitore();

    Leggendo il seguito del codice ho notato quest'altra istruzione:

    codice:
    protected abstract ContenitoreDati<E> creaContenitore();
    Quello che non ho capito è che cosa rappresenta quest'ultima istruzione.

    Aiutatemi

    Ciao

  2. #2
    La classe che contiene il metodo estrai() è una classe astratta che dunque non può essere istanziata direttamente, ma va estesa da una classe concreta che ne deve implementare tutti i metodi dichiarati astratti o, in caso contrario, deve essere dichiarata anch'essa astratta.
    Le classi astratte sono molto simili alle interfacce.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    ok
    ma cosa è quest'istruzione ?

    codice:
    protected abstract ContenitoreDati<E> creaContenitore();
    Un metodo?

    Come hai detto tu una classe astratta va estesa da una classe concreta ;

    La classe concreta è questa :

    codice:
    public class ContenitoreDatiArray<E> extends ContenitoreDatiAstratto<E>{
    
    ....
    .....
    ....
    in questa classe compare ancora l'istruzione che non ho capito che questa volta restituisce un oggetto

    codice:
    @Override
    protected ContenitoreDati<E> creaContenitore(){
    return new ContenitoreDatiArray(size+1);
    }
    Che cos'è quest' istruzione ? Un metodo ?
    perchè nell'istruzione precedente non viene restituito nulla?

    codice:
    protected abstract ContenitoreDati<E> creaContenitore();

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    dai un'occhiata alle classi astratte (in dettaglio ai metodi astratti) in java ed è spiegato cosa significa quella riga di codice

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Al di là del titolo poco significativo, la risposta a queste domande legate alla sintassi o ai costrutti si trova facilmente cercando nella documentazione ufficiale in base alla parola chiave specifica.

    Se poi non si riesce a comprendere quanto c'è scritto, allora si può aprire una discussione avendo cura di indicare cosa non è chiaro di quanto si è letto nella documentazione.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.