News:

Ritornati online con una nuova veste grafica

Menu principale

[JAVA] Discussioni generali

Aperto da Frodo, 29 Ottobre 2003, 16:33:53

Discussione precedente - Discussione successiva

Frodo

Parliamo del linguaggio web  più diffuso, ...dove trovare fonti, software feeware/sharewere per sviluppare applicazioni, esempi pratici, riviste,.. e perchè no se qualcuno sa, anche aiutare chi ha dubbi.


Ho creato questo "mini tutorial" dedicato al java, dove reperire le basilari informazioni di questo linguaggio ...

Ora questo 3d può essere liberamente utilizzato per discussioni di natura generale su questo linguaggio, per problemi specifici si può sempre creare un 3d nuovo :)


[Messaggio adattato da Genjo Sanzo]
[span style=\'font-family:Geneva\']Non tutto quel ch'è oro brilla
Né gli erranti sono perduti;
Il vecchio ch'è forte non s'aggrinza
E le radici profonde non gelano.
Dalle ceneri rinascerà un fuoco, L'ombra sprigionerà una scintilla, Nuova la lama ora rotta, E re quei ch'è senza corona.[/span]

Zizio

Secondo me l'utilizzo di un IDE (Integrated Development Environment) da parte dei principianti è sconsigliato. Il motivo principale è che può nascondere degli aspetti significativi del linguaggio, dal momento che genera del codice in modo automatico.
Personalmente, in quanto utente Linux, ho iniziato con Emacs (del quale esiste anche una versione per Windows, ma pare che sia di difficile configurazione) e con JCreator (su Windows).
Zizio

Ineffabile elargitore di sublimi sbobben  (Sturmtruppen)

Frodo

#2
Ascolta, ti consiglio di installarti Jcreator, basta che gli dici dove hai il Sdk e poi, quando programmi il file  .class lo crea lui quando compili, e quando vuoi  l'output a vidio , basta  lanciare il pogramma klikkando su unun pulsante (detto in maniera molto terra terra), io bluej lo ho usato per 2 settimane, essendo uno strumento universitario, e fatto per essere configurato a mano, ec ec. per motivi ... che puoi immaginare, poi sono passato a texpad, jCreator che uso spesso per "programmazione no web" e poi uso jBuilder9 per la programmazione web (meglio sto imparando ad usare jBuilder), e per questo ci vorebbe solo un corso per settarlo come si deve.

Comunque aveo intenzione di migliorare quello che ho postato, inserendo il settaggio del SDK e dei software relativi.

Se vuoi usare BlueJ, scaricati il manuale, comunque dopo aver compilato, puoi chiamare la shel e a riga di comandi lanciaro.
BlueJ ti fa creare il pakage, cioe il tuo "programma", che sarà formato da più classi, poi all'interno del tuo pakage crei le tue classi, creando  i file  contocorrente.java ; Interesse.java; muto.java, ....  poi compilando crei i relativi bytecode cioè in questo caso : Interesse.class ; mutuo.class, contocorrente.class, che rimangono all'interno del tuo pacchetto, naturalmente , lo vedrai quando leggerai  il manuale, che all'interno  del file .java dovrai menzionare il pacchetto di appartenza, comunque non  è necessario per falri girare  con il tuo file di Testbanca.java che sarà trasformato in  TestBanca.class
[span style=\'font-family:Geneva\']Non tutto quel ch'è oro brilla
Né gli erranti sono perduti;
Il vecchio ch'è forte non s'aggrinza
E le radici profonde non gelano.
Dalle ceneri rinascerà un fuoco, L'ombra sprigionerà una scintilla, Nuova la lama ora rotta, E re quei ch'è senza corona.[/span]

Zizio

#3
Il nome del file deve essere lo stesso di quello della classe: se tu scrivi una classe public class Hello, l'unico modo in cui puoi chiamare il file è Hello.java. Guarda sempre ciò che ti dice il compilatore: è esplicativo. Con il tempo imparerai a comprendere tutti i suoi messaggi. ;)
Zizio

Ineffabile elargitore di sublimi sbobben  (Sturmtruppen)

Zizio

Per il momento fai 1 classe 1 file, in realtà puoi anche creare più classi all'interno dello stesso file.
Adesso devo uscire, domani nel caso ti spiego meglio e ti metto anche un esempio.  ;)  
Zizio

Ineffabile elargitore di sublimi sbobben  (Sturmtruppen)

Zizio

#5
Allora, iniziamo dalla tua ultima domanda.
Quella di Java si chiama "implementazione mista", ovvero il codice sorgente viene tradotto in bytecode (presente nel file.class), il quale sarà poi interpretato dalla "macchina intermedia": in questo caso la Java Virtual Machine.
Ciò significa che il compilatore non produrrà mai un file.exe, ma si limiterà a tradurre il sorgente in un linguaggio intermedio (il bytecode).
Credo che, comunque, esistano dei programmi per creare dei file.exe da Java, ma su questo non posso far altro che azzardare delle supposizioni. In ogni caso dal compilatore puoi aspettarti soltanto del bytecode.
Schematizzando il cammino da codice sorgente a programma in esecuzione avremmo:

Codice sorgente --> Compilatore --> File di bytecode --> Interprete --> Programma in esecuzione.

Volendo potresti compilare ed eseguire dal prompt di DOS con javac File.java e java File.

Tornando a quello che dicevamo ieri sera e al tuo primo programma: Java è un linguaggio OO (Object Oriented), ma è possibile programmare anche in modo imperativo. Diciamo che nella programmazione imperativa, l'enfasi viene posta nella progettazione e nella scrittura del procedimento con il quale, a partire da dei dati in ingreso, si producono i risultati.
Nella programmazione orientata agli oggetti, invece, l'enfasi viene posta nella progettazione di un modello del dominio di applicazione. Gli oggetti che noi andiamo a creare sono la rappresentazione di oggetti del mondo reale o di concetti: dobbiamo identificarne la sruttura e le funzionalità.
Gli oggetti sono raggruppati in classi, ovvero insiemi di oggetti simili per struttura e funzionalità.
Quindi:

Oggetti --> Istanze di classe
Struttura --> Variabili istanza
Funzionalità --> Metodi
Attivazione di funzionalità --> Chiamata di metodo
Creazione di oggetti --> Primitiva new

Tutto questo per dire che cosa: ieri sera tu hai scritto un programmino imperativo che stampava la scritta "Hello World". Adesso vediamo di utilizzare le classi:
file GreeterF.java

public class GreeterF{
   private String name; //variabile istanza

   public GreeterF(String Name){ //costruttore (metodo che specifica come inizializzare lo stato dell'oggetto costruito
       name = Name;
   }
   public String sayHello(){ //metodo
       String message = "Hello," + name + "!";
       return message;
   }
   public String sayGoodbye(){ //metodo
String message = "Goodbye," + name +  "!";
return message;
   }
}

file GreeterTestF.java

public class GreeterTestF{
   public static void main (String[] args){  
       GreeterF greeter1 = new GreeterF("World");
       System.out.println(greeter1.sayHello());
       GreeterF greeter2 = new GreeterF("Tizio");
       System.out.println(greeter2.sayHello());
GreeterF greeter3 = new GreeterF("Caio");
System.out.println(greeter3.sayGoodbye());
GreeterF greeter4 = new GreeterF("Sempronio");
System.out.println(greeter4.sayGoodbye());
  }
}

Ecco, spero che con quello che ti ho detto prima tu riesca un po' a capire il finzionamento. Ma devo proprio fare 2 file? Beh, una classe con un metodo main mi serve sicuramente per eseguire il programma, però potrei anche fare una cosa tipo:
file GreeterTestF.java

class GreeterF{
   private String name;

   public GreeterF(String Name){
       name = Name;
   }
   public String sayHello(){
       String message = "Hello," + name + "!";
       return message;
   }
   public String sayGoodbye(){
String message = "Goodbye," + name +  "!";
return message;
   }
}

public class GreeterTestF{
   public static void main (String[] args){  
       GreeterF greeter1 = new GreeterF("World");
       System.out.println(greeter1.sayHello());
       GreeterF greeter2 = new GreeterF("Tizio");
       System.out.println(greeter2.sayHello());
GreeterF greeter3 = new GreeterF("Caio");
System.out.println(greeter3.sayGoodbye());
GreeterF greeter4 = new GreeterF("Sempronio");
System.out.println(greeter4.sayGoodbye());
  }
}

L'importante è che il file abbia il nome della classe dichiarata con public class.... Quindi, diciamo che se hai da sviluppare un progetto che richiede l'utilizzo di varie classi puoi anche dichirare tutte le tue classi in un file, mettendo il public solo alla fine (nella classe con il main() o nella classe "principale").
Zizio

Ineffabile elargitore di sublimi sbobben  (Sturmtruppen)

pippoman86

ma usare textpad ???

che comipila il java (creando il .class) e me lo esegue

senza incasinarmi la vita con il promt di dos

Frodo

CitazioneOk .. allora spiegatemi bene una cosa ...


Come dicevo prima, abituato al c mi creava un'eseguibile.exe dopo aver compilato ...

Qui dopo aver compilato mi crea un file .class .....

Allora devo capire ... Java mi crea o no eseguibili ?

I .exe in java esistono ?

Mi è un'pò difficile capire questa cosa ...
In Jcreator ho compilato il file che ho quotato sopra ... poi sempre da questo programma ho eseguito il file, mi si è aperto un prompt di dos con la scritta che facevo stampare alla classe ... ok perfetto .. ma io volevo capire come diavolo ha fatto il programma a far eseguire quella classe ??

Bisogna andare sul prompt di dos ed eseguire qualcosa ?

Quello che non capisco è proprio come eseguire i file .class .... abituato agli eseguibili di c mi trovo spiazzato :D

cià
ho aggiornato il primo post, spero di averti risposto, ora riapro il forum
[span style=\'font-family:Geneva\']Non tutto quel ch'è oro brilla
Né gli erranti sono perduti;
Il vecchio ch'è forte non s'aggrinza
E le radici profonde non gelano.
Dalle ceneri rinascerà un fuoco, L'ombra sprigionerà una scintilla, Nuova la lama ora rotta, E re quei ch'è senza corona.[/span]

Frodo

Citazionema usare textpad ???

che comipila il java (creando il .class) e me lo esegue

senza incasinarmi la vita con il promt di dos
Giuso, il senso dei editor e proprio quello, l'importante e che tu sappia che esite anche questa possibilità, meglio che il tuo editor di testo non fa altro che eseguire i comandi che tu dovresti fare ogni volta che compili , esegui  o crei  una documuntazione di un file.java.

[span style=\'font-family:Geneva\']Non tutto quel ch'è oro brilla
Né gli erranti sono perduti;
Il vecchio ch'è forte non s'aggrinza
E le radici profonde non gelano.
Dalle ceneri rinascerà un fuoco, L'ombra sprigionerà una scintilla, Nuova la lama ora rotta, E re quei ch'è senza corona.[/span]

Frodo

#9
La prassi prevede che il nome della classe sia uguale al nome del file .

ES

Pippo.java   ----> public class Pippo{.....} alcunieditor di testo non ci fanno caso, ma la maggior parte si, jCreator si, quando viene fatta la verifica dal compilatore, cliccando sulla prima riga del testo dell'errore, va a posizionare una freccia rossa in posizione della riga di codice errata.

Di solito se i nomi sono composti, le parole successive alla prima iniziano per maiuscolo, si cerca di evitare l'utilizzo degli spazi
Es.
CLASSE  : NumeriInteri

METODO : calcolaFattori()  (il metodo deve iniziare in minuscolo)
[span style=\'font-family:Geneva\']Non tutto quel ch'è oro brilla
Né gli erranti sono perduti;
Il vecchio ch'è forte non s'aggrinza
E le radici profonde non gelano.
Dalle ceneri rinascerà un fuoco, L'ombra sprigionerà una scintilla, Nuova la lama ora rotta, E re quei ch'è senza corona.[/span]

Frodo

Aggiornata guida java con riferimento a tomcat e jsp
[span style=\'font-family:Geneva\']Non tutto quel ch'è oro brilla
Né gli erranti sono perduti;
Il vecchio ch'è forte non s'aggrinza
E le radici profonde non gelano.
Dalle ceneri rinascerà un fuoco, L'ombra sprigionerà una scintilla, Nuova la lama ora rotta, E re quei ch'è senza corona.[/span]

Lioneri

Grazie Frodo,vado subito a leggere  :clap:  :clap:  
Le cose migliori si ottengono con il massimo della passione (Johann Wolfgang Goethe)[span style=\'font-size:8pt;line-height:100%\'][span style=\'color:blue\'][span style=\'color:blue\']CD Board[/span][/span][/span][span style=\'font-size:8pt;line-height:100%\'][span style=\'color:green\'][span style=\'color:green\']EmuleMucicWebsite[/span] never die[/span][/span]

Frodo

Aggiunta "configurazione" Dreamweaver Mx per utilizzare Tomcat per creare siti dinamici con l'utilizzo delle Jsp
[span style=\'font-family:Geneva\']Non tutto quel ch'è oro brilla
Né gli erranti sono perduti;
Il vecchio ch'è forte non s'aggrinza
E le radici profonde non gelano.
Dalle ceneri rinascerà un fuoco, L'ombra sprigionerà una scintilla, Nuova la lama ora rotta, E re quei ch'è senza corona.[/span]

Tinuviel

Che ne dite dell'utilizzo di Flash nelle pagine web?
Tinùviel

CitazioneGîl síla na lû govaded..... Le melon Frodo..




Frodo

dico .... dico ... sì, lo si può anche integrare anche con java
[span style=\'font-family:Geneva\']Non tutto quel ch'è oro brilla
Né gli erranti sono perduti;
Il vecchio ch'è forte non s'aggrinza
E le radici profonde non gelano.
Dalle ceneri rinascerà un fuoco, L'ombra sprigionerà una scintilla, Nuova la lama ora rotta, E re quei ch'è senza corona.[/span]