Guida al linguaggio JAVA
La storia
Java nasce negli anni novanta. Volendo risalire proprio alle origini, lo
potremmo scovare, sotto il ´falso´ nome di "Codice Green", nel 1991,
quando un gruppo della Sun Microsystems stava sviluppando un linguaggio
adattabile a quelli che venivano definiti televisori intelligenti.
Ebbene sì... le origini di Java non sono poi così nobili!
Eppure, forse, proprio dalla necessità di doversi adattare, di volta in
volta, ad hardware diversi (oggi un televisore, domani un forno a
microonde...) è derivata la caratteristica primaria del linguaggio:
l'indipendenza dalla piattaforma.
Risale al 1995 invece, il primo successo.
Siamo alla mostra Sun World quando viene presentato HotJava, il primo
browser in grado di interpretare il linguaggio. Già nell'anno successivo
sia la Netscape che Microsoft riproggettano i loro browser per renderli
compatibili col codice Java. E' un successo senza precedenti...
Caratteristiche principali
1. Java è un linguaggio indipendente dalla piattaforma.
Java compila i sorgenti dei suoi programmi in un codice detto Bytecode,
diverso dal linguaggio macchina. Il Bytecode al momento dell'esecuzione
del programma viene interpretato da uno strumento chiamato Java Virtual
Machine (JVM).
Il programma Java, una volta compilato, è legato alla JVM e non alla
macchina o al sistema operativo su cui è avvenuta la compilazione.
I browser attualmente in circolazione implementano una Java Virtual
Machine per poter eseguire i programmi Java contenuti nelle pagine HTML
scaricate dalla rete. Questi programmi, scritti in Java, sono detti Applet.
Al momento dello sviluppo di un applet dobbiamo tenere presente che i
browser più vecchi potrebbero non implementare la versione della JVM
necessaria all´esecuzione dell´applet.
Questa politica comporta anche alcuni svantaggi, primo tra tutti è
quello della lentezza di esecuzione. Java infatti, essendo un linguaggio
interpretato, farà si che per l'esecuzione di un programma il vostro
computer esegua un numero di istruzioni macchina pari ad oltre il doppio
delle istruzioni che verrebbero eseguite se lo stesso programma fosse
stato scritto in C.
2. Java è un linguaggio ad oggetti
Un oggetto è un insieme di dati e funzioni che ne definiscono lo stato
ed il comportamento. In Java le classi sono dei prototipi di oggetti,
ovvero sono delle strutture dati utilizzate per definire le caratteristiche
e le funzionalità di un determinato tipo di oggetto.
Una classe, una volta definita, viene instanziata creando un oggetto.
E' importante non far confusione tra la definizione di una classe e
l'instanzizione di un oggetto. Definire una classe consiste nell'elencare
una serie di proprietà e funzioni, instanziare un oggetto invece vuol
dire creare una variabile che presenta le caratteristiche della classe da
cui è stata generata.
Introduzione alla programmazione in Java
Per quanto Java risulti complessivamente un linguaggio più semplice da
apprendere del C++, è anche vero che, a differenza di quanto accade per
quest'ultimo, la creazione di una applicazione Java, per quanto semplice
possa essere, richiede la conoscenza di un certo numero di nozioni di
base che possono risultare di non immediata comprensione a chi si avvicina
per la prima volta al mondo della programmazione ad oggetti.
Per questo motivo, nella prima parte di questo corso ci capiterà scrivere
alcune istruzioni senza riuscire a coglierne a pieno l´utilità ed il
funzionamento.
Non preoccupatevi, tutto verrà chiarito al momento giusto.
Per quanto la sintassi Java risulti piuttosto semplice, lo studio del
linguaggio richiede tempi medio-lunghi. Questo è dovuto al fatto che
Java mette a disposizioni degli sviluppatori un'enorme quantità di funzionalità
(classi con metodi predefiniti) pronte per l'uso, di cui un programmatore
deve quantomeno conoscere l'esistenza.
Tali classi sono raggruppate in pacchetti (detti packages) il cui funzionamento
è analogo a quello delle librerie di cui sono dotati tutti i moderni
linguaggi di programmazione.
In questo corso, oltre a trattare la sintassi Java, descriveremo, ed
utilizzeremo alcune delle classi contenute in questi pacchetti, tuttavia
non ci è possibile analizzarle tutte.
Lo scopo finale del corso, è fornire gli strumenti necessari per poter
completare lo studio del linguaggio senza bisogno di ulteriori aiuti e
secondo le necessità individuali.
Consuetudine comune a tutti i testi che trattano un linguaggio di
programmazione è quella di presentare, come prima applicazione, il
programma "Hello World". Procediamo quindi alla scrittura del codice
del programma e analizziamone il funzionamento.
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello World");
}
}
Il codice deve essere inserito in un file di testo e salvato con il
nome HelloWorld.java.
L'estensione .java identifica il file come file contenente codice
sorgente Java. Il nome del file invece deve essere lo stesso della
classe in esso definita. Dato che abbiamo definito una classe chiamata
HelloWorld, questo deve essere anche il nome del file che la contiene.
Torneremo a parlare delle classi nei prossimi capitoli, per ora vi basti
sapere che le classi sono lo strumento utilizzato da Java per creare gli
oggetti, e che tutto, anche il programma più semplice, in Java, è un
oggetto.
Prima di proseguire nella spiegazione del nostro primo programma, vorrei
precisare che il Java è un linguaggio case-sensitive, il che in poche
parole vuol dire che distingue tra lettere maiuscole da quelle minuscole,
quindi, nel copiare il codice proposto, fate attenzione a rispettarne
anche questo aspetto.
La terza linea:
public static void main(String[] args)
è la dichiarazione di un metodo, appartenente alla classe HelloWorld.
Un metodo è quello che in molti altri linguaggi di programmazione viene
definito funzione o procedura. Se non avete esperienza di altri linguaggi
di programmazione invece vi basti sapere che tutte le istruzioni che desideriamo
vengano eseguite dal nostro programma, in Java, devono essere contenute
all'interno di un metodo.
Questo è il motivo per cui abbiamo dichiarato il metodo main().
Le parole chiave public static void che precedono il nome (main)
del metodo, ne definiscono alcune caratteristiche.
Indicano rispettivamente che si tratta di un metodo di accessibile dall'esterno
della classe (public), che il metodo non modifica i dati della
classe a cui appartiene (static) e che non restituisce alcun
valore (void).
String[] args, infine indica il tipo dei parametri che vengono passati
al metodo all'esterno per un'eventuale elaborazione.
Generalmente infatti, un metodo esegue una determinata operazione in
base ai parametri ricevuti, ma questo al momento non è il nostro caso.
Non preoccupatevi se qualcosa vi risulta poco chiaro, torneremo a parlare
dei metodi nei capitoli successivi, ed in particolare del metodo main() che
è un metodo particolare.
Arriviamo infine all'istruzione che effettivamente assolve alla funzione
che ci eravamo prefissi, cioè quella di visualizzare la scritta "Hello World"
sul video. Per indicare dove questa stringa deve essere scritta utilizziamo
l´oggetto out, definito nella classe System, che rappresenta
lo standard output stream, quindi sostanzialmente il video (a meno di
complesse operazioni di redirezionamento dell'output che per il momento non
ci riguardano).
Per specificare cosa deve essere scritto utilizziamo il metodo println(), dell'oggetto
out, a cui passiamo come parametro il testo da scrivere: "Hello World".
Il tutto si combina nell'istruzione:
System.out.println("Hello World");
Per provare il programma è necessario compilarlo ed eseguirlo.
Il pacchetto JDK distribuito dalla Sun, comprende sia il compilatore che
l'interprete Java. Il compilatore è il file javac.exe (sui sistemi Win32),
quindi per compilare il programma scriveremo al prompt:
javac HelloWorld.java
sempre facendo attenzione all'ordine con cui si susseguono lettere maiuscole
e minuscole. In fase di compilazione è necessario specificare
l'estensione .java del file contenente il codice sorgente.
Se non sono stati commessi errore nella scrittura del codice il compilatore
genera un file .class, con lo stesso nome del file sorgente (HelloWord),
contenente il bytecode eseguibile dalla macchina virtuale (JVM).
Per eseguire il programma utilizzeremo l'interprete digitando:
java HelloWorld
In questo caso non è necessario, anzi sarebbe un errore indicare l'estensione .class del
file contenente il codice del programma.
In alcune vecchie versioni di Java è necessario indicare al compilatore la
posizione in cui sono state installate le librerie (packages) Java.
E' possibile far questo impostando la variabile d'ambiente CLASSPATH nel seguente modo:
set CLASSPATH = [path librerie Java]
Ad esempio se avete installato Java nella directory c:\jdk, l'impostazione
di CLASSPATH dovrebbe essere qualcosa tipo:
set CLASSPATH = c:\jdk\lib;
Pagina Successiva