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

    [JAVA] Errore su creazione nuova istanza

    Stò cercando di imparare Java ed ho utilizzato un esempio portato in un tutorial in fase di compilazione tutto bene ma in fase di esecuzione (utilizzo NetBeans 3.6) mi da il seguente errore:


    Java.lang.InstantiationError: VettoreOrdinato
    at Test.Ordinamento2.main(testOrdinamento2.java:9)
    Exception in thread "main"


    Ecco il codice.

    Mi potreste aiutare a risolvere il problema.

    Grazie


    codice:
    interface Ordinabile 
    {
       public boolean maggioreDi (Ordinabile o);
    }
    
    class TestOrdinamento2 
    {
       public static void main (String argv[]) {
       VettoreOrdinato vo = new VettoreOrdinato (10); 
          vo.aggiungi (new Punto(30,40));
          vo.aggiungi (new Punto(300,400));
          vo.aggiungi (new Punto(3,4));
          vo.ordina();
          for (int i = 0; i < vo.elementi(); i++)
             System.out.println(((Punto)(vo.leggi (i))).distanza());
       }
    }
    
    class VettoreOrdinato 
    {
       private Ordinabile vettore[];
       private int maxElementi;
       private int curElementi;
     
       public VettoreOrdinato (int maxElementi) {
          this.maxElementi = maxElementi;
    	   vettore = new Ordinabile[maxElementi];
    	   curElementi = 0;
       }
     
       public boolean aggiungi (Ordinabile elemento) {
          if (elemento != null && curElementi < maxElementi) {
    	      vettore[curElementi++] = elemento;
             return true;
          } else
             return false;
       }
    
       public Ordinabile leggi (int indice) {
          if (indice >= 0 && indice < curElementi)
    	      return (vettore[indice]);
    	else
    	   return null;
       }
    
       public int maxElementi () { return maxElementi; }
       
       public int elementi () { return curElementi; }
     
       public void ordina () {
          int   s, i, j, num;
          Ordinabile temp;
     
          num = curElementi;
          for (s = num / 2; s > 0; s /= 2)
             for (i = s; i < num; i++)
                for (j = i - s; j >= 0; j -= s)
                   if (vettore[j].maggioreDi (vettore[j + s])) {
                      temp = vettore[j];
                      vettore[j] = vettore[j + s];
                      vettore[j + s] = temp;
                   }
       }
    }
    
    class Punto implements Ordinabile 
    {
       int x;
       int y;
       public Punto (int x, int y) {
          this.x = x;
          this.y = y;
       }
       int leggiX() {
          return x;
       }
       int leggiY() {
          return y;
       }
       int distanza() {
          return (int) Math.sqrt(x * x + y * y);
       } 
       public boolean maggioreDi (Ordinabile o) {
          if (o instanceof Punto) 
             return distanza() > ((Punto) o).distanza();
          else
             return false;
       }
    }

  2. #2
    Utente di HTML.it L'avatar di Ed_Bunker
    Registrato dal
    Jul 2003
    Messaggi
    1,119
    A vederlo cosi' sembrerebbe non ci sia nessun errore. L'inizializzazione di 'vo' corrisponde al "prototipo" del costruttore di VettoreOrdinato percio'... Sicuro che le classi siano tutte "visibili" ?!

  3. #3
    Ho trovato l'errore....... il problema era NetBeans ossia avevo nel Filesystems un'altra cartella con altre classi di un precedente programma che probabilmente incasinava l'esecuzione in quanto le classi le cercava li dentro.

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.