Linguaggi Java
Struttura di un programma Java
Dal punto di vista sintattico un programma Java è un insieme di classi ognuna delle quali è
definita in un file con estensione .java con lo stesso nome della classe. La classe
principale, e si deve decidere quale sarà la classe principale, deve avere un metodo main
dal quale avrà inizio il programma.
Una classe può essere vista come un tipo definito dall’utente che specifica le operazioni
utilizzabili sul tipo stesso, e diventa il modello per creare più oggetti dello stesso tipo, che
diventano così dei contenitori di altri dati primitivi e di comportamenti.
Package
Le classi che costituiscono un programma e che quindi sono collegate tra loro vengono
raggruppate in gruppi chiamati package; per indicare a quale package appartiene una
classe, è sufficiente aggiungere in testa al file come prima istruzione
Package nome_package
Un package una volta compilato può essere compresso in un file con estensione jar che
contiene tutti i file in bytecode delle classi del package, e tale file poi ha la funzione di
libreria
Classi
In generale ogni file che definisce una classe è composto dalle seguenti parti:
1. dichiarazione del nome del package di appartenenza
2. elenco dei package utilizzati diversi da quelli di appartenenza, in particolare
import package librerie di base
import package librerie aggiuntive
3. definizione del nome della classe
4. definizione degli attributi – che saranno le variabili globali della classe,
viste quindi da tutti i metodi: ogni attributo potrà essere visto da tutti gli
utilizzatori esterni alla classe ( public ), oppure solo all’interno della classe
( private o protected); le costanti vanno identificate con la parola
chiave final.
5. definizione dei costruttori
6. definizione dei metodi – i metodi realizzano i comportamenti che gli
oggetti implementano: sono definiti in modo analogo alle funzioni del
linguaggio C, però non ci può essere passaggio di variabili primitive come
parametri per riferimento
Per la classe Lampadina dunque dovremo scrivere:
package illumina;
import java.io.*
 punto 1
 punto 2
Fondazione ITS A. Volta – Linguaggi -Java – Flavia Lollis
10
Linguaggi Java
public class Lampadina  punto 3
{
int stato, numClick, numMaxClick, contaCllick;
String colore
 punto 4
public Lampadina(int num, String color)
 punto 5
{
…….
}
public Lampadina(int numMax)
{
…….
}
public void click()
 punto 6
{
…..
}
public int getStato()
{
…..
return st;
}
public String getColore()
{
…..
return co;
}
public int getNumClick()
{
…..
return cl;
}
}
Tipi primitivi e variabili
Fondazione ITS A. Volta – Linguaggi -Java – Flavia Lollis
11
Linguaggi Java
Le variabili possono essere di tipo primitivo e di tipo classe, nel senso che oltre ai tipi
di variabili conosciute dal C, si possono definire delle variabili che siano del tipo definito da
una classe.
Abbiamo quindi i tipi numerici (int, float, double, short, long), il boolean (true/false), il
carattere char come tipi primitivi.
Per quanto riguarda le stringhe, Java propone il tipo di variabile String, che in realtà è una
classe fornita dalle librerie java.lang: quando definiremo una variabile di tipo String
dunque definiremo in realtà un oggetto che è un’istanza della classe String, del quale
potremo utilizzare tutti i metodi.
Ricordando che anche in C una stringa è un vettore di caratteri, scrivere
String str = "abc";
è equivalente a scrivere
char data[] = {'a', 'b', 'c'};
String str = new String(data);
Come utilizzare gli oggetti
Tutte le classi sono state scritte per fornire dei servizi alle altre classi che le istanziano,
pertanto se dobbiamo realizzare un’azione, dobbiamo individuare la classe che fornisce il
servizio desiderato, creare un suo oggetto ed utilizzarlo.
Come esempio vediamo come fare a leggere dei dati da tastiera.
Cercando nella documentazione delle classi Java messa a disposizione da Oracle,
all’indirizzo http://docs.oracle.com/javase/7/docs/api/overview-summary.html vediamo che
nelle librerie java.util troviamo la classe Scanner che preleva i tipi primitivi e stringhe da
una risorsa, quindi scrivendo
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
siccome System.in rappresenta la tastiera, usando l’oggetto sc che abbiamo definito di tipo
Scanner, possiamo usare tutti i suoi metodi, in particolare
nextInt()
per leggere un intero
nextFloat()
per leggere un float
nextLine()
per leggere l’intera riga digitata
Fondazione ITS A. Volta – Linguaggi -Java – Flavia Lollis
12