Corso di Java

Scrivere un’applicazione Java

 

A partire da questa lezione cominciamo lo studio del modo in cui Java ci permette di sviluppare applicazioni.
Per chi sviluppa software già da tempo, utilizzando uno dei linguaggi “classici”, quali C, C++, Pascal e altri, il concetto di applicazione non è nuovo.
Per applicazione si intende un programma eseguibile autonomamente.
Tralasciando i dettagli teorici, ci concentreremo sulle possibilità che ci vengono offerte da Java per creare delle applicazioni che girino su qualsiasi piattaforma.
Nel caso abbiate dimenticato quanto detto a proposito nella lezione 2, vi consiglio di rileggerla per rinfrescare tutte quelle nozioni che adesso metteremo in pratica.

Qualcuno di noi avrà provato, in passato, a richiamare la macchina virtuale di Java, passandogli direttamente come parametro il nome di una delle classi create nelle precedenti lezioni, ottenendo un errore del tipo:

In class Automobile: void main(String argv[]) is not defined

Ciò avviene perché l’interprete Java presuppone che, se il programma viene lanciato dalla riga di comando, si tratti di un’applicazione. Un’applicazione, infatti, parte da un metodo particolare, chiamato main(), e poiché la classe “Automobile” non possiede tale metodo, l’interprete non sa come comportarsi.

Per utilizzare questa classe possiamo:
1. creare un’applicazione o un’applet che ne faccia uso;
2. aggiungere un metodo main() alla classe stessa.
La segnatura del metodo main() ha sempre questa forma:

public static void main(String arg[]) {
    ...
}


Infatti deve:
- essere pubblico, perché deve rendersi disponibile al mondo esterno (in particolare all’interprete Java);
- essere un metodo di classe, perché deve essere usato senza prima aver creato un oggetto;
- non restituire alcun valore.

Notiamo inoltre che esso accetta un parametro particolare, il cui uso e significato vedremo in seguito.
Il corpo del metodo main() contiene il codice di avvio dell’applicazione, che provvede all’inizializzazione di variabili e alla creazione di istanze delle classi usate.
Essendo inoltre un metodo di classe, la classe che lo contiene non viene creata automaticamente quando si avvia l’esecuzione, per cui se si vuole trattare la classe come un oggetto, occorre crearne esplicitamente un’istanza all’interno di tale metodo.
Aggiungiamo alla classe “Automobile” il seguente metodo main() (solitamente viene aggiunto come ultimo metodo):

public static void main(String arg[]) {
    Automobile auto = new Automobile("Vera", "Carriola", 70, 15, 8, 70,
                                     true, true);
       
    System.out.println("La mia auto e' una " + auto.getMarcaModello());
}


Ricompiliamo la classe e mandiamola in esecuzione (ormai sappiamo come fare).

Otterremo a video la seguente riga:

La mia auto e' una Vera Carriola

Abbiamo così creato un’applicazione molto semplice, ma possiamo sbizzarrirci ad utilizzare i metodi della classe per creare diverse applicazioni.
Poiché lo abbiamo già visto diverse volte, è il caso di notare che per stampare a video una stringa, si utilizza un metodo particolare, println(), che accetta come parametro la stringa da stampare.
Questo metodo è invocato sulla variabile out, che è un attributo statico della classe System fornita dal JDK stesso: ciò spiega perché è possibile utilizzare tale metodo senza aver prima istanziato un oggetto della classe System.
Un’applicazione Java può avere una sola classe, oppure, come avviene nella maggior parte dei casi, essere composta da diverse classi, delle quali vengono create e utilizzate una o più istanze durante l’esecuzione. E’ possibile creare tutte le classi di cui si voglia disporre, senza limiti sul numero o la dimensione.

Tra tutte le classi che compongono l’applicazione, solo quella d’avvio necessita di avere un metodo main(); tuttavia, se le classi ausiliarie includono dei propri metodi main(), questi vengono ignorati quando il programma viene eseguito.
Una buona abitudine di programmazione è quella di corredare ogni nuova classe di un metodo main(), che può essere impiegato per testare la classe e per dare, a chi vuole usare la classe da noi creata, un esempio di possibile utilizzo.
Adesso andate a riguardare il codice di esempio della lezione 3 e non dovreste avere difficoltà a comprenderne il significato.
Alla prossima!

 

Torna all'indice Generale del corso di Corso di Java di Software Planet