Ciao,
ho iniziato a fare i primi passi con Java per un esame universitario...è un semplice programma che non fà ne input ne output formato da 2 classi: una che definisce il tipo di dati dei numeri interi, positivi e pari,più un metodo di istanza ed uno di classe e l'altra che contiene il main che istanzia 3 oggetti interipositivi pari e che usa i due metodi.
Dopo aver compilato le due classi provo ad eseguire da DOS la classe che contiene il main con il comando:
java TestInteroPositivoPari.class
mi dà il seguente messaggio di errore:
C:\Programmi\Crimson Editor\template\esercizi\InteroPositivoPari>java TestInteroPositivoPari.class
Exception in thread "main" java.lang.NoClassDefFoundError: TestInteroPositivoPari/class
Caused by: java.lang.ClassNotFoundException: TestInteroPositivoPari.class
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
I codici delle due classi sono:
Classe TestInteroPositivoPari.java:
codice:
class TestInteroPositivoPari{
/* Il metodo main è necessariamente un metodo di classe */
public static void main(String[] args){
int k;
InteroPositivoPari N, M, P;
N = new InteroPositivoPari(4);
M = new InteroPositivoPari(6);
P = N.somma(M); // N è l'oggetto ricevente
/* Nell'istruzione che segue la classe InteroPositivoPari è la classe ricevente */
k = InteroPositivoPari.verificaSeInteroPositivoPari(3);
}
}
Classe InteroPositivoPari.java
codice:
class InteroPositivoPari{
int n; // E' la variabile di istanza
/* Il costruttore */
InteroPositivoPari(int k){
if(k >= 0 && k%2 == 0) n = k;
else n = 1;
}
/* Il metodo di istanza che esegue la somma dell'oggeto ricevente con l'oggetto di tipo InteroPositivoPari referenziato
dal parametro altro */
InteroPositivoPari somma(InteroPositivoPari altro){
int k;
InteroPositivoPari risultato;
if(this.n != 1 && altro.n != 1)
k = this.n + altro.n;
else k = 1;
risultato = new InteroPositivoPari(k);
return risultato;
}
/* Il metodo di classe che verifica se il parametro h è un intero positivo pari o meno, restituisce 1 nel primo caso, 0
altrimenti */
public static int verificaSeInteroPositivoPari(int h){
int esito = 0;
if(h >= 0 && h%2 == 0) esito = 1;
return esito;
}
}
Da che può dipendere?Come risolvo?
Grazie
Andrea