Visualizzazione dei risultati da 1 a 10 su 11

Visualizzazione discussione

  1. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Giuso Visualizza il messaggio
    Prima domanda: posso definire un campo nella classe di implementazione dell'interfaccia(InterfaceImpl) nonostante l'interfaccia non ne possa contenere?
    Certo che puoi mettere campi (di istanza, di classe) all'interno della classe. Le interfacce non c'entrano in questo. Le interfacce servono per rappresentare a livello più astratto le operazioni che un oggetto deve poter fare (senza indicare però come) .. non quali dati deve contenere l'oggetto!

    Quote Originariamente inviata da Giuso Visualizza il messaggio
    Altro problema: nella classe principale Esercizio ho dei metodi i cui parametri in ingresso hanno come tipo il nome dell'interfaccia(Ad esempio Interface x). Se in questi metodi volessi creare un oggetto di tipo Interface, poichè questi oggetti hanno un campo intero, dovrò chiamare il costruttore di InterfaceImpl passandogli l'intero, giusto?
    Questione "forse" posta un po' male. Se un metodo ha un parametro del tipo di una interfaccia, di norma è perché al metodo non interessa "sapere" quale è la implementazione e gli basta solo operare con i metodi della interfaccia e di conseguenza "accetta" quindi qualunque sua implementazione.

    Se un metodo riceve un java.util.List (la interfaccia), allora si presume che gli vada bene ricevere una qualunque sua implementazione, ArrayList, LinkedList, CopyOnWriteArrayList, ecc..

    Quote Originariamente inviata da Giuso Visualizza il messaggio
    Quindi se il mio metodo accetta Interface x, se io volessi accede al campo intero dovrei fare un cast di questo tipo? -> InterfaceImpl xx = (InterfaceImpl) x
    No, "nì". Se fai così vai a "cablare" il metodo verso quella specifica implementazione. Andando quindi contro a quanto dicevo prima. Se un metodo riceve come parametro un tipo interfaccia, dovrebbe essere perché gli basta stare sul "generico", senza sapere quale è la implementazione.

    Quote Originariamente inviata da Giuso Visualizza il messaggio
    Sto sbagliando qualcosa?
    Probabilmente devi ancora afferrare meglio a cosa servono le interfacce e come usarle.
    Ultima modifica di andbin; 23-03-2018 a 18:21
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.