Buono sconto 4% su Toner e Cartucce agli utenti AZpoint. SU Iomiricarico.it!!
|
Si ringrazia Claudio De Sio per la concessione del materiale pubblicato in questo articolo.
|
Identificatori, tipi di dati ed
array
Obiettivi:
Il Lettore al termine di questo capitolo dovrà
essere in grado di
Saper
utilizzare le convenzioni per il codice Java. (unità 3.1)
Conoscere e
saper utilizzare tutti i tipi di dati primitivi. (unità 3.2)
Saper gestire
casting e promotion. (unità 3.2)
Saper
utilizzare i reference, e capirne la filosofia .(unità 3.4)
Iniziare ad
esplorare la documentazione della libreria standard di Java (unità
3.6).
Saper
utilizzare la classe String (unità3.4).
Saper
utilizzare gli array (unità 3.5).
Saper commentare il proprio codice ed
essere in grado di utilizzare lo strumento javadoc per produrre
documentazione tecnica esterna (unità 3.1, 3.6).
Unità didattica 3.1)
- Stile di codifica
Il linguaggio Java:
Schema Libero:
Potremmo scrivere un intero programma in Java
tutto su di ununica 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 linizio, 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.
Lidentificatore numeroLati
è diverso dallidentificatore numerolati,
quindi bisogna fare un po dattenzione, 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. Lutilizzo 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 dutilizzo 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 lidentificatore 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
uninterfaccia) 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 lidentificatore 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é
questultimo è 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 lidentificatore è composto
di più parole, queste si separano con underscore (simbolo di
sottolineatura). Per esempio:
- NUMERO_LATI_DI_UN_QUADRATO
- PI_GRECO
|