- Stile di codifica
Il linguaggio Java:
Schema Libero:
Potremmo scrivere un intero programma in Java
tutto su di un’unica riga, oppure andando a capo dopo ogni parola
scritta: il compilatore compilerà ugualmente il nostro codice se
esso è corretto. Ovviamente però, il lettore avrà difficoltà a
capire il significato del codice! Esistono dei metodi standard di
formattazione del codice, che facilitano la lettura un programma
Java. Vi presentiamo di seguito i due più usati metodi di
formattazione:
class Classe
{
int
intero;
public
void metodo()
{
intero=10;
int
unAltroIntero=11;
}
}
Con questo stile (che viene utilizzato anche
dai programmatori C), il lettore può capire subito dove la classe ha
inizio e dove ha fine, dato che le parentesi graffe che delimitano
un blocco di codice si trovano incolonnate. Stesso discorso per il
metodo: risultano evidenti l’inizio, la fine e la funzionalità del
metodo.
Un altro stile molto utilizzato (ma solo dai "javisti")è
il seguente:
class Classe
{
int
intero;
public
void metodo() {
intero=10;
int
unAltroIntero=11;
}
}
per il quale valgono circa le stesse
osservazioni fatte per il primo metodo.
Si raccomanda, per una buona riuscita del
lavoro che sarà svolto in seguito dal lettore, una rigorosa
applicazione di uno dei due stili appena presentati.
- Case sensitive:
Java è un linguaggio case sensitive, il che
significa che fa distinzione tra lettere maiuscole e minuscole. Il
programmatore alle prime armi tende a digerire poco questa
caratteristica del linguaggio. Bisogna ricordarsi di non scrivere ad
esempio class con
lettera maiuscola, perché per il compilatore non significa niente.
L’identificatore numeroLati
è diverso dall’identificatore
numerolati, quindi
bisogna fare un po’ d’attenzione, e, specialmente nei primi tempi,
avere un po’ di pazienza.
- Commenti:
Commentare opportunamente il codice
implementato, è una pratica che dovrebbe essere considerata
obbligatoria dal programmatore. Solo così infatti, le correzioni da
apportare ad un programma saranno enormemente facilitate. Java
supporta tre tipi diversi di commenti al codice:
1)
// Commento su una sola
riga
2) /*
* Commento su
* più righe
*/
3) /**
* Commento
per produrre
* la
documentazione del codice
* in formato
HTML
*/
Nel primo caso tutto ciò che scriveremo su di
una riga dopo aver scritto "//"
non sarà preso in considerazione dal compilatore. Questa sintassi ci
permetterà di commentare brevemente alcune parti di codice.
Il commento su più righe potrebbe essere utile
ad esempio per la descrizione delle funzionalità di un programma. In
pratica il compilatore non prende in considerazione tutto ciò che
scriviamo tra "/*"
ed "*/". Entrambi
questi due primi tipi di commenti sono ereditati dal linguaggio C++.
Ciò che invece rappresenta una grande novità, è il terzo tipo di
commento. L’utilizzo in pratica è lo stesso del secondo tipo, e ci
permette di fare commenti su più righe. In più, ci offre la
possibilità di produrre in modo standard, in formato HTML, la
documentazione tecnica del programma, sfruttando un comando chiamato
"javadoc". Per esempi pratici d’utilizzo di questo strumento il
lettore è rimandato alla fine di questo modulo.
- Regole per gli identificatori:
Gli identificatori (nomi) dei metodi, delle
classi, degli oggetti, delle variabili, delle costanti e delle
interfacce (concetto che avremo modo di apprezzare più avanti),
hanno delle regole da rispettare.
Un identificatore non può coincidere con una
parola chiave (keyword) di Java. Una parola chiave, è una parola che
ha un certo significato per il linguaggio di programmazione. Nella
seguente tabella sono riportate tutte le parole chiave di Java
(versione 1.3 del JDK):
abstract
boolean break byte
case
catch
char class const continue
default
do double else
extends
false
final finally float
for
goto if
implements import instanceof
int
interface long native new
null
package private protected public
return
short static strictfp super
switch
synchronized this throw throws
transient
true try void volatile
while
Possiamo notare in questa tabella, alcune
parole chiave che abbiamo già incontrato come per esempio
int,
public,
void,
return e
class, e di cui già
conosciamo il significato. Ovviamente non potremo chiamare una
variabile class,
oppure un metodo void.
Possiamo notare anche le parole riservate
goto e
const, che non hanno
nessun significato in Java, ma che non possono essere utilizzate
come identificatori. Esse sono dette parole riservate (reserved
words).
2)In un identificatore:
il primo carattere può essere
A-Z, a-z, _, $
il secondo ed i successivi possono essere
A-Z, a-z, _, $, 0-9
Quindi: "a2"
è un identificatore valido, mentre "2a"
non lo è.
N.B.: in realtà, è possibile che alcuni
compilatori, compresi quelli dei J.D.K., accettino altri simboli per
comporre gli identificatori. Per esempio i simboli "£", e "€", sono
tollerati. Tuttavia, il lettore troverà difficilmente altri testi
che accenneranno a ciò che è stato appena fatto osservare. E’ in
ogni caso sconsigliabile non seguire le direttive Sun. Ma il dovere
di cronaca…
- Regole facoltative per gli identificatori
e convenzioni per i nomi
Utilizzando gli identificatori tenendo presenti
le due regole che abbiamo appena descritto, non otterremo mai errori
in compilazione relativi. Ma esistono delle direttive standard
fornite dalla Sun, per raggiungere uno standard anche nello stile di
implementazione. E’ importantissimo utilizzare queste direttive in
un linguaggio tanto standardizzato quanto Java.
Gli identificatori è bene che siano
significativi. Infatti, se scriviamo un programma utilizzando la
classe "a", che
definisce le variabili "b",
"c", "d"
e il metodo "q",
sicuramente ridurremo la comprensibilità del programma stesso. Di
solito l’identificatore di una variabile, è composto da uno o più
sostantivi, per esempio "numeroLati",
o "larghezza".
Gli identificatori dei metodi di solito conterranno dei verbi, ad
esempio "stampaNumero",
o "somma". Questa
è una direttiva che è dettata più che da Sun dal buon senso.
Esistono delle convenzioni per gli
identificatori, così come in molti altri linguaggi. In Java sono
semplicissime:
Un identificatore di una classe (o di
un’interfaccia) deve sempre iniziare per lettera maiuscola. Se
composto di più parole, queste non si possono separare perché il
compilatore non può intuire le nostre intenzioni. Come abbiamo
notato in precedenza, bisogna invece unire le parole in modo tale da
formare un unico identificatore, e fare iniziare ognuna di esse con
lettera maiuscola. Esempi di identificatori per una classe
potrebbero essere:
- Persona
-
MacchinaDaCorsa
-
FiguraGeometrica
Un identificatore di una variabile deve sempre
iniziare per lettera minuscola. Se l’identificatore di una variabile
deve essere composto di più parole, valgono le stesse regole che
valgono per gli identificatori delle classi. Quindi, esempi di
identificatori per una variabile potrebbero essere:
-
pesoSpecifico
-
numeroDiMinutiComplessivi
- x
Per un identificatore di un metodo valgono le
stesse regole che valgono per gli identificatori delle variabili.
Potremo in ogni caso sempre distinguere un identificatore di una
variabile da un identificatore di un metodo, giacché quest’ultimo è
sempre seguito da parentesi tonde. Inoltre, per quanto già
affermato, il nome di un metodo dovrebbe contenere almeno un verbo.
Quindi, esempi di identificatori per un metodo potrebbero essere:
-
sommaDueNumeri(int a, int b)
-
cercaUnaParola(String parola)
- stampa()
Gli identificatori delle costanti invece, si
devono distinguere nettamente dagli altri, e tutte le lettere
dovranno essere maiuscole. Se l’identificatore è composto di più
parole, queste si separano con underscore (simbolo di
sottolineatura). Per esempio:
-
NUMERO_LATI_DI_UN_QUADRATO
- PI_GRECO
Obbiettivi e Unità Didattica 3.1) - Pagina 1
Unità didattica 3.2) - Pagina 2
Unità didattica 3.3) - Pagina 3
Unità didattica 3.4) - Pagina 4
Unità didattica 3.5) - Pagina 5
Unità didattica 3.6) - Pagina 6