Stile di codifica
Il linguaggio Java:
-
è a schema libero
-
è case sensitive
-
supporta i commenti
-
supporta le parole chiave
-
ha delle regole per i tipi di dati e convenzioni per i nomi
Schema Libero:
Potremmo scrivere un intero programma in Java tutto su diun’unica riga, oppure andando a capo dopo ogni parolascritta: il compilatore compilerà ugualmente il nostrocodice se esso è corretto. Ovviamente però, illettore avrà difficoltà a capire il significatodel codice! Esistono dei metodi standard di formattazione delcodice, che facilitano la lettura un programma Java. Vipresentiamo di seguito i due più usati metodi diformattazione:
class Classe{ int intero; public void metodo() { intero=10; int unAltroIntero=11; }}
Con questo stile (che viene utilizzato anche daiprogrammatori C), il lettore può capire subito dove laclasse ha inizio e dove ha fine, dato che le parentesi graffeche delimitano un blocco di codice si trovano incolonnate.Stesso discorso per il metodo: risultano evidentil’inizio, la fine e la funzionalità delmetodo.
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 fatteper il primo metodo.
Si raccomanda, per una buona riuscita del lavoro chesarà svolto in seguito dal lettore, una rigorosaapplicazione di uno dei due stili appena presentati.
- Case sensitive:
Java è un linguaggio case sensitive, il chesignifica che fa distinzione tra lettere maiuscole eminuscole. Il programmatore alle prime armi tende a digerirepoco questa caratteristica del linguaggio. Bisogna ricordarsidi non scrivere ad esempio class con letteramaiuscola, perché per il compilatore non significaniente. L’identificatore numeroLati èdiverso dall’identificatore numerolati, quindibisogna fare un po’ d’attenzione, e, specialmentenei primi tempi, avere un po’ di pazienza.
- Commenti:
Commentare opportunamente il codice implementato, èuna pratica che dovrebbe essere considerata obbligatoria dalprogrammatore. Solo così infatti, le correzioni daapportare 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 unariga dopo aver scritto "//" non saràpreso in considerazione dal compilatore. Questa sintassi cipermetterà di commentare brevemente alcune parti dicodice.
Il commento su più righe potrebbe essere utile adesempio per la descrizione delle funzionalità di unprogramma. In pratica il compilatore non prende inconsiderazione tutto ciò che scriviamo tra"/*" ed "*/". Entrambiquesti due primi tipi di commenti sono ereditati dallinguaggio C++. Ciò che invece rappresenta una grandenovità, è il terzo tipo di commento.L’utilizzo in pratica è lo stesso del secondotipo, e ci permette di fare commenti su più righe. Inpiù, ci offre la possibilità di produrre inmodo standard, in formato HTML, la documentazione tecnica delprogramma, sfruttando un comando chiamato"javadoc". Per esempi pratici d’utilizzo diquesto strumento il lettore è rimandato alla fine diquesto modulo.
- Regole per gli identificatori:
Gli identificatori (nomi) dei metodi, delle classi, deglioggetti, 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 parolachiave (keyword) di Java. Una parola chiave, è unaparola che ha un certo significato per il linguaggio diprogrammazione. Nella seguente tabella sono riportate tuttele 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 synchronizedthis throw throws
transient true try void volatile
while
Possiamo notare in questa tabella, alcune parole chiaveche abbiamo già incontrato come per esempioint, public, void, return eclass, e di cui già conosciamo il significato.Ovviamente non potremo chiamare una variabile class,oppure un metodo void. Possiamo notare anche le paroleriservate goto e const, che non hanno nessunsignificato in Java, ma che non possono essere utilizzatecome 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 identificatorevalido, mentre "2a" non lo è.
N.B.: in realtà, è possibile che alcunicompilatori, compresi quelli dei J.D.K., accettino altrisimboli per comporre gli identificatori. Per esempio isimboli "£" , e "€" , sonotollerati. Tuttavia, il lettore troverà difficilmentealtri testi che accenneranno a ciò che è statoappena fatto osservare. E’ in ogni caso sconsigliabilenon seguire le direttive Sun. Ma il dovere dicronaca…
- Regole facoltative per gli identificatori econvenzioni per i nomi
Utilizzando gli identificatori tenendo presenti le dueregole che abbiamo appena descritto, non otterremo mai erroriin compilazione relativi. Ma esistono delle direttivestandard fornite dalla Sun, per raggiungere uno standardanche nello stile di implementazione. E’importantissimo utilizzare queste direttive in un linguaggiotanto 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 programmastesso. Di solito l’identificatore di una variabile,è composto da uno o più sostantivi, per esempio"numeroLati" , o"larghezza". Gli identificatori dei metodidi 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 sonosemplicissime:
Un identificatore di una classe (o diun’interfaccia) deve sempre iniziare per letteramaiuscola. Se composto di più parole, queste non sipossono separare perché il compilatore non puòintuire le nostre intenzioni. Come abbiamo notato inprecedenza, bisogna invece unire le parole in modo tale daformare un unico identificatore, e fare iniziare ognuna diesse con lettera maiuscola. Esempi di identificatori per unaclasse potrebbero essere:
- Persona
- MacchinaDaCorsa
- FiguraGeometrica
Un identificatore di una variabile deve sempre iniziareper lettera minuscola. Se l’identificatore di unavariabile deve essere composto di più parole, valgonole stesse regole che valgono per gli identificatori delleclassi. Quindi, esempi di identificatori per una variabilepotrebbero essere:
- pesoSpecifico
- numeroDiMinutiComplessivi
- x
Per un identificatore di un metodo valgono le stesseregole che valgono per gli identificatori delle variabili.Potremo in ogni caso sempre distinguere un identificatore diuna variabile da un identificatore di un metodo,giacché quest’ultimo è sempre seguito daparentesi tonde. Inoltre, per quanto già affermato, ilnome 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 devonodistinguere nettamente dagli altri, e tutte le letteredovranno essere maiuscole. Se l’identificatore ècomposto di più parole, queste si separano conunderscore (simbolo di sottolineatura). Per esempio:
- NUMERO_LATI_DI_UN_QUADRATO
- PI_GRECO
- Articolo precedente Le basi della programmazione object oriented: classi ed oggetti
- Articolo successivo Tipi di dati primitivi