PDA

View Full Version : [JAVA] Problema compilazione


grifis78
14-12-2009, 10:04
Ciao a tutti ragazzi,

ho intrapreso da ieri lo studio di Java e già mi ritrovo con un primo problema. Sto usando netbeans invece che utilizzare JDK da riga di comando. Stavo facendo un primo esercizio consigliato dal libro che sto seguendo. Si tratta di creare due files .java: nel primo (GradeBook.java), sarà presente una sola classe denominata GradeBook con un metodo displayMessage, nel secondo file (GradeBookTest.java) è invece presente il metodo main ove creo un oggetto myGradeBook di tipo, appunto, "GradeBook" per richiamare la funzione displayMessage. Ecco, per chiarezza, i due files:

GradeBook.java
public class GradeBook {

//visualizza messaggio di benvenuto
public void displayMessage() {

System.out.println("Benvenuto in Grade Book!!!!");

}//fine del METODO displayMessage
}

GradeBookTest.java
public class GradeBookTest {

//il METODO main fa partire il programma
public void main (String args[]) {

//creiamo un OGGETTO GradeBook e lo assegniamo alla var. myGradeBook
GradeBook myGradeBook = new GradeBook();

//chiamiamo il metodo displayMessage dell'oggetto myGradeBook
myGradeBook.displayMessage();

}// fine metodo main


}

A momento della compilazione, mi ritorna l'errore che nel primo file non è presente il metodo main! Lo stesso avviene se compilo da riga di comando con javac. Cosa sbaglio? Ho seguito filo e per segno cosa dice il libro....

Grazie fin d'ora!

mad_hhatter
14-12-2009, 10:12
il metodo main deve essere static

mad_hhatter
14-12-2009, 10:14
se posso permettermi una critica non richiesta, i tuoi commenti non aggiungono assolutamente nulla codice (che è già chiarissimo di per sè).

PGI-Bis
14-12-2009, 10:23
Quei commenti vanno benissimo così come sono.

grifis78
14-12-2009, 10:29
Ciao mad, innanzitutto ti ringrazio per la risposta!

Ho provato a mettere "static" al posto di public, ma ho ottenuto il seguente errore:

"main method not public"

mad_hhatter
14-12-2009, 10:48
Ciao mad, innanzitutto ti ringrazio per la risposta!

Ho provato a mettere "static" al posto di public, ma ho ottenuto il seguente errore:

"main method not public"

il main deve essere public E static

mad_hhatter
14-12-2009, 10:58
Quei commenti vanno benissimo così come sono.

motivazione? perché, ripeto, i commenti nel main non fanno altro che tradurre letteralmente quanto già espresso in java. Dal punto di vista puramente didattico, inoltre, sono imprecisi perché si confonde l'oggetto con il suo riferimento.

grifis78
14-12-2009, 11:19
Si, in effetti li ho scritti così, tanto per iniziare a capire. Ho una certa pratica col php, ma a livello di programmazione procedurale, non ho mai avuto a che fare con gli oggetti.

Comunque, per il mio problema? E' strano che un libro (fratelli Deitel) già dal principio sbagli o, comunque, non spieghi bene il problema.

mad_hhatter
14-12-2009, 11:24
Comunque, per il mio problema? E' strano che un libro (fratelli Deitel) già dal principio sbagli o, comunque, non spieghi bene il problema.

ma ora funziona? in sostanza, la dichiarazione del main deve essere sempre questa:

public static void main(String[] args)

Se non ti è chiaro cosa significhino i vari componenti della dichiarazione, chiedi pure

grifis78
14-12-2009, 11:49
si, adesso funziona, grazie! Non ho il libro con me adesso quindi non posso controllare se ho copiato male io! In ogni caso risolto, grazie mille ragazzi.

grifis78
17-12-2009, 14:16
Scusate ma approfitto nuovamente!
cosa c'è di sbagliato in questa stringa:

System.out.println ("benvenuto nel corso %s", courseName);

mi da l'errore cannot find symbol

grazie!

grifis78
17-12-2009, 14:24
scusate risolto!

se dovevo printf e non println... vi asicuro che era un errore del libro...:D

banryu79
18-12-2009, 08:08
scusate risolto!

se dovevo printf e non println... vi asicuro che era un errore del libro...:D
Cambia libro, se puoi :fagiano: