Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Java Base : problema interazione classi

    ciao a tutti, siccome è solo da 2 settimane che faccio java, nonstante siano 8h al giorno lun-ven, non mi è ancora chiaro questa cosa:
    premettendo che utilizzo eclipse,
    ho due classi pubbliche, in due file .java diversi ma nello stesso package, Passeggero ed Aereo, vi scrivo la parte di codice che mi interessa :
    import vari ...
    public class passeggero{
    private String nome;
    private String fumatore;
    private int posto = -1;

    public passeggero(String s, String f){
    setNome(s);
    setFumatore(f);
    }
    ....vari setter e getter tra cui
    public String getFumatore(){
    return fumatore;
    }
    }
    ------
    public class Aereo{
    static ArrayList <passeggero> aereo = new ArrayList<passeggero>();
    .....operazioni varie fino a....
    public boolean addpass(passeggero p,int num){
    ......
    String x = p.getFumatore(); ......
    }
    bene, nella riga con String x ecc. mi dice che la funzione getFumatore() non è stata definita per il passeggero. Sapete dirmi perchè????
    EDIT: non l'ho messo in CODE perchè sono due righe due, secondo me si legge meglio cosi

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    108
    dovresti estendere la classe Aereo
    public class Aereo extends Passeggero {

    }

  3. #3
    t ringrazio molto per la risposta, domani mattina riprovo (purtroppo non ho Eclipse sul pc d casa..) cmq mi pare che desse problemi sul costruttore di passeggero se utilizzavo extends, xkè era la prima cosa che mi era venuta in mente, perchè in teoria se faccio extends dovrei vedere tutti i metodi della classe passeggero giusto?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    108
    Si erediti tutti i metodi della classe Passeggero.
    per richiamare il metodo della superClasse in questo caso Passeggero devi usare il super
    String s = super.getFumatore();

  5. #5
    Originariamente inviato da cmpunk88
    t ringrazio molto per la risposta, domani mattina riprovo (purtroppo non ho Eclipse sul pc d casa..) cmq mi pare che desse problemi sul costruttore di passeggero se utilizzavo extends, xkè era la prima cosa che mi era venuta in mente, perchè in teoria se faccio extends dovrei vedere tutti i metodi della classe passeggero giusto?
    ma scusa la mia chiamata del metodo getFumatore è fatta dentro al metodo addpass che prende in ingresso il passeggero p, di cui io voglio conoscere il campo fumatore, se faccio super.getFumatore(); mica prende il campo fumatore di p??

  6. #6
    @GianniMal l'ereditarietà non c'entra nulla.

    @cmpunk88 dovresti postare l'intero stacktrace dell'errore e magari l'intera implementazione del metodo interessato..

    Intanto ti consiglio di rispettare la nomenclatura standard di Java per quanto riguarda le classi;
    di utilizzare un valore boolean anizichè uno String per definire il campo fumatore.
    Poi, perchè il campo aereo in Aereo è statico?

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    108
    si ok che l'ereditarietà nn centra nulla, ho sbagliato il termine eredita che in java vuol dire un'altra cosa...

    cmpunk88 allega i file con le classi

  8. #8
    Originariamente inviato da VincenzoTheBest
    @GianniMal l'ereditarietà non c'entra nulla.

    @cmpunk88 dovresti postare l'intero stacktrace dell'errore e magari l'intera implementazione del metodo interessato..

    Intanto ti consiglio di rispettare la nomenclatura standard di Java per quanto riguarda le classi;
    di utilizzare un valore boolean anizichè uno String per definire il campo fumatore.
    Poi, perchè il campo aereo in Aereo è statico?
    beh per la mia compagnia ho un aereo solo, quindi posso farlo statico ,no? è un arraylist di passeggero, per il fumatore ho messo string (andavabene anche char credo) xkè richiedo all'utente di dirmi se è fumatore o no;
    x l'esatta stacktrace t posso dire domani mattina, xkè son dovuto uscire d fretta senza poter copiare

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Dovevi inserirlo comunque tra tag CODE.

    Se non posti del codice è difficoltoso aiutarti e trovare l'errore. Inoltre, come suggerito da Vincenzo dovresti postare lo stacktrace

    beh per la mia compagnia ho un aereo solo, quindi posso farlo statico ,no? è un arraylist di passeggero, per il fumatore ho messo string (andavabene anche char credo) xkè richiedo all'utente di dirmi se è fumatore o no;
    Non credo tu abbia chiaro l'utilizzo di static.
    Una variabile di istanza dichiarata static è comune a tutti gli oggetti che vai a creare; in sostanza non viene fatta nessuna copia di quella variabile.

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.