Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    extends costruttori ???

    Ragazzi ho il seguente problema....avendo una classe del tipo:
    public class Animale {

    private int numeroZampe;
    private float lunghezza;
    private float larghezza;

    Animale(int zampe) {
    this.numeroZampe = zampe;
    }

    public int getNumeroZampe(){
    return numeroZampe;
    }

    public void setLunghezza(float value){
    this.lunghezza = value;
    }

    public void setLarghezza(float value){
    this.larghezza = value;
    }

    }

    Creandone un'altra che estende la prima come questa:

    class Mammifero extends Animale{

    private int peso;

    public int getPeso(int peso){
    return peso;
    }

    }

    mi dice: Cannot find symbol.....

    non riesco a capire....???
    FestaDj.it - DeeJay per feste musica per l'intrattenimento
    ExpoLine.it - Passatempo e Risorse per Webmaster.
    SuperAst.it - Mercatino web annunci gratuiti.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    La tua classe Animale non ha un costruttore vuoto (costruttore di default). Questo significa che per essere istanziata essa deve obbligatoriamente ricevere un paramero.

    Tutte le classe che la estendono, quindi, devono fornire alla superclasse questo parametro.

    Significa, in sostanza, che devi creare un costruttore per la classe derivata che richiama (tramite super()) il costruttore della classe madre, passandogli il parametro corretto.


    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
    Originariamente inviato da LeleFT
    La tua classe Animale non ha un costruttore vuoto (costruttore di default). Questo significa che per essere istanziata essa deve obbligatoriamente ricevere un paramero.

    Tutte le classe che la estendono, quindi, devono fornire alla superclasse questo parametro.

    Significa, in sostanza, che devi creare un costruttore per la classe derivata che richiama (tramite super()) il costruttore della classe madre, passandogli il parametro corretto.


    Ciao.
    Quindi in questo modo:

    class Mammifero extends Animale{

    /** Creates a new instance of Mammifero */
    private int peso;

    Mammifero(int zamp){
    super.numeroZampe = zamp;
    }

    public int getPeso(int peso){
    return peso;
    }

    }

    però non mi funziona... mi da sempre cannot find symbol
    FestaDj.it - DeeJay per feste musica per l'intrattenimento
    ExpoLine.it - Passatempo e Risorse per Webmaster.
    SuperAst.it - Mercatino web annunci gratuiti.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da tikre
    Mammifero(int zamp){
    super.numeroZampe = zamp;
    }
    No

    codice:
    Mammifero(int zamp)
    {
        super (zamp);
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Originariamente inviato da andbin
    No

    codice:
    Mammifero(int zamp)
    {
        super (zamp);
    }
    Perfetto grazie a tutti adesso funziona!!!
    FestaDj.it - DeeJay per feste musica per l'intrattenimento
    ExpoLine.it - Passatempo e Risorse per Webmaster.
    SuperAst.it - Mercatino web annunci gratuiti.

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    132
    scusate avrei delle domande:
    1)facendo nella classe mammifero
    codice:
    super (zamp);
    cosa significa??
    2)mi potete spiegare perchè c'è il metodo setLargezza setLunghezza e non mettiamo i metodi getLArghezza getLunghezza?Il contrario invece per NumeroZampe?

  7. #7
    Originariamente inviato da ifts2004
    scusate avrei delle domande:
    1)facendo nella classe mammifero
    codice:
    super (zamp);
    cosa significa??
    Invochi semplicemente il costruttore della superclasse/classe madre (come preferisci) Animale di Mammifero.

    In questo caso è necessario esplicitare la chiamata al costruttore della superclasse in quanto Animale non dispone del costruttore senza argomenti, altrimenti si incorrerebbe in un errore di compilazione. Invece nel caso in cui Animale disponesse di tale costruttore, allora il compilatore Java avrebbe inserito automaticamente una chiamata a quel costruttore senza individuarne l'errore.

    Devi sapere che in Java all'istanziazione di una classe vengono istanziate a casacata tutte le sue superclassi fino alla classe Object.

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    132
    per la domanda 2)?

  9. #9
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da ifts2004
    per la domanda 2)?
    Si sarà dimenticato, come possiamo sapere cosa aveva in mente l'autore tre anni fa... (parentesi: gli UP sono vietati)
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    132
    no, ma quello che intendevo dire io è quando devo devo usare set e get

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.