Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it L'avatar di MOBILUK
    Registrato dal
    Apr 2001
    Messaggi
    225

    [JAVA] Includere una classe

    ho un problema con la compilazione del programma Countflips.java; di seguito è riportato il sorgente del medesimo:

    codice:
    import Coin;
    
    public class Countflips
    {
    // lancia 1000 volte la moneta e conta quante volte esce testa e quante croce
    
    public static void main (String[] args)
    {
      final int NUMERO_LANCI = 1000;
      int headCount = 0, tailCount = 0;
      
      Coin myCoin = new Coin();
      
      for (int count=1; count <= NUMERO_LANCI; count++)
      {
        myCoin.flip();
        
        if (myCoin.getFace() == myCoin.HEADS)
            headCount++;
        else
           tailCount++;
      }
      
      System.out.println ("Numero di lanci: ");
      System.out.println ("Testa è uscita " + headCount + "volte");
      System.out.println ("Croce è uscita " + tailCount + "volte");
      
    }
    }
    come potete vedere vi è il richiamo di Coin, una classe che io stesso ho creato prima di creare Countflip.java. La creazion di questa classe non mi ha comportato errori in fase di compilazione, eccovi il codice stesso:

    codice:
    public class Coin
    {
    public final int HEADS = 0;
    public final int TAILS = 1;
    
    private int face;
    
    public Coin ()
      {
        flip();
      }
    
    public void flip ()
      {
        face = (int) (Math.random() * 2);
      }
    
    public int getFace ()
      {
        return face;
      }
    
    public String toString()
      {
        String faceName;
        
        if (face == HEADS)
           faceName = "Testa";
        else
           faceName = "Croce";
        
        return faceName;
      }
    }
    quando compilo Countflips.java mi da 3 errori:

    '.' expected
    import Coin; (la freccetta d'errore si posiziona sotto il ; )

    canot resolve symbol
    symbol: class Coin
    location: class Countflips
    Coin myCoin = new Coin(); (la freccetta d'errore si posizione sotto la C di Coin, il primo Coin, non il Coin che è dopo new)

    lo stesso errore me lo da poi alla C di Coin che è dopo new.

    il totale sono 3 errori.

    Quello che secondo me non va è la directory, il file Countflips.java si trova in C:\j2sdk1.4.1_01\bin come anche la classe Coin (sia Coin.java che Coin.class), e io sono dep parere che in quanto classe non dovrebbe essere in questa directory, infatti tempo fa scaricai una classe da internet, e per farla funzionare la misi in una directory ben precisa, il problema è che non ricordo dove, ho provato a cercarla ma non la trovo


    qualcuno sa aiutarmi?

    Grazie
    ...credi sia aria quella che stai respirando?

  2. #2
    Utente di HTML.it L'avatar di MOBILUK
    Registrato dal
    Apr 2001
    Messaggi
    225
    c'è nessuno?
    ...credi sia aria quella che stai respirando?

  3. #3
    Utente di HTML.it L'avatar di userfra
    Registrato dal
    Jul 2001
    Messaggi
    1,418
    di solito una classe può essere inclusa o "chiamata" attraverso il comando package nomeclasse, prima degli import!
    -------------------------------------------------
    Il fumo nuoce gravemente alla salute

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    metti i due file java in una directory qualsiasi e compila con
    java -classpath . nome.java

  5. #5
    se stanno nella stessa dir non c'è bisogno di definire esplicitamente import Coin;

    prova a commentare quella riga di codice e vedrai che funge
    23-08-2005: Udinese in cémpions lìg
    Questa estate l'ho passata a Tallin

  6. #6
    Utente di HTML.it L'avatar di MOBILUK
    Registrato dal
    Apr 2001
    Messaggi
    225
    Originariamente inviato da pippo75
    se stanno nella stessa dir non c'è bisogno di definire esplicitamente import Coin;

    prova a commentare quella riga di codice e vedrai che funge
    il file è nella stessa dir ma come faccio a commentare quella riga? O provato con * e anche con il . ma non cambia niente. Come la commento?

    Scusa ma sono nuovo al mondo della programmazione
    ...credi sia aria quella che stai respirando?

  7. #7
    Originariamente inviato da MOBILUK
    il file è nella stessa dir ma come faccio a commentare quella riga? O provato con * e anche con il . ma non cambia niente. Come la commento?

    Scusa ma sono nuovo al mondo della programmazione
    // -> x commentare una riga
    /* */ -> x commentare più righe
    /** */ -> per commentare una documentazione che utilizzerai col javadoc
    ti ricordi quando da piccoli andavamo in treno? io mettevo il culo fuori dal finestrino e tu la faccia e tutti ci chiedevano se eravamo gemelli...

  8. #8
    Utente di HTML.it L'avatar di MOBILUK
    Registrato dal
    Apr 2001
    Messaggi
    225
    ok, come per il PHP.

    Il programma in questo modo funziona, però non capisco, se noi commentiamo una riga di codice automaticamente (per quanto ne so io) quella stassa riga non dovrebbe essere presa in considerazione quado si esegue il programma. Io infatti ho sempre commentato righe in cui inserivo i miei commenti personali per uso didattico. E' sbagliato come ragionamento? A giudicare dal risultato (il programma richiama la classe in questione e funziona perfettamente!), pare di si!

    Qualcuno me lo spiega?
    ...credi sia aria quella che stai respirando?

  9. #9
    infatti i commenti sono fatti apposta
    e quella riga di importazione non viene presa in considerazione.

    il fatto che il tuo programma funzioni lo stesso, lo si deve a questo:
    al momento dell'esecuzione, quando trova una classe, java la va a cercare automaticamente fra l'insieme delle sue classi, e poi tra quelle presenti nel classpath
    poichè la classe che vuoi importare si trova appunto nella stessa dir della classe principale, e tutte e due sono presenti nel classpath, allora il tutto funziona
    23-08-2005: Udinese in cémpions lìg
    Questa estate l'ho passata a Tallin

  10. #10
    Utente di HTML.it L'avatar di MOBILUK
    Registrato dal
    Apr 2001
    Messaggi
    225
    scusa Pippo, ma se abbiamo detto che la riga in questione (// import Coin non viene presa in consederazione proprio perchè è commentata, come fa java (o più precisamente l'interprete) a capire che deve prendere la classe Coin?
    ...credi sia aria quella che stai respirando?

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