Corso Java Base (4): modificatori e operatori
Modificatori
Per “modificatori del linguaggio JAVA” si intendono le parole chiave capaci di cambiare il significato di un componente di un’applicazione Java. Si possono anteporre alla dichiarazione di un componente di un’applicazione Java anche più modificatori alla volta, senza tener conto dell’ordine in cui vengono anteposti.
I modificatori di accesso regolano essenzialmente la visibilità e l’accesso ad un componente Java (ad esempio una variabile).Vediamone alcuni:
public: Può essere utilizzato sia relativamente ad un membro (attributo o metodo) che ad una classe stessa.
• Un membro dichiarato pubblico sarà accessibile da una qualsiasi classe situata in un qualsiasi package.
• Una classe dichiarata pubblica sarà anch’essa visibile da un qualsiasi package.
protected: Può essere utilizzato relativamente ad un membro (attributo o metodo) di una classe.
• Un membro protetto sarà accessibile all’interno dello stesso package ed in tutte le sottoclassi della classe in cui è definito, anche se non appartenenti allo stesso package.
private: Può essere utilizzato solo con i membri (attributo o metodo) di una classe
• Un membro privato sarà accessibile solo all’interno della classe.
Modificatore |
Stessa Classe |
Stesso Package |
Sottoclasse |
Ovunque |
public |
si |
si |
si |
si |
protected |
si |
si |
si |
no |
private |
si |
si |
no |
no |
final: Questo modificatore è applicabile alle variabili, ai metodi e alle classi.
• Una variabile dichiarata final diviene una costante
• Un metodo dichiarato final non può essere riscritto in una sottoclasse • Una classe dichiarata final non può essere estesa
Il modificatore final si può utilizzare anche per variabili e parametri locali, i valori di tali variabili non sono modificabili localmente.
static: Un membro statico è condiviso da tutte le istanze della classe, quindi un membro statico può essere utilizzato anche senza istanziare la classe. Il suo utilizzo provocherà il caricamento in memoria della classe contenente il membro in questione.
Il modificatore static prescinde dal concetto di oggetto e lega strettamente le variabili al concetto di classe, per questo le variabili statiche sono anche definite come “variabili di classe”. Una variabile dichiarata static e public può considerarsi una sorta di variabile globale. L’utilizzo pertanto deve essere limitato ai casi in cui sia realmente necessario. Viceversa è utile a volte utilizzare costanti globali, definite con public, static e final.
abstract: Questo modificatore è applicabile ai metodi e alle classi, una classe astratta non può essere istanziata, nulla vieta però ad una classe astratta di implementare tutti i suoi metodi.
Operatori
Dopo aver imparato a dichiarare e inizializzare le variabili, vediamo come possono essere utilizzate, ossia come servirsene per svolgere su di esse alcune operazioni. Per poter svolgere tali operazioni si utilizzano gli operatori, questi sono rappresentati da simboli speciali ed eseguono operazioni specifiche su una o più variabili restituendo un risultato.
Gli operatori sono suddivisi in categorie in base alle loro funzionalità.
Operatore di assegnazione
Uno degli operatori più comuni che si incontrano è l’operatore di assegnazione semplice “=”.
Questo operatore assegna il valore alla sua destra all’operando alla sua sinistra, ad esempio:
String nome = “roma”; int numero = 7;
In questi esempio utilizzando l’operatore di assegnazione abbiamo inizializzato una variabile di tipo String a “roma” ed una variabile di tipo int a 7.
Operatori aritmetici
Il linguaggio di programmazione Java fornisce gli operatori che eseguono le più comuni operazioni aritmetiche quali: addizione, sottrazione, moltiplicazione, divisione:
“+”: questo operatore esegue le addizioni, ma se applicato su variabili di tipo String opera la concatenazione di queste ultime.
“-“: questo operatore esegue le sottrazioni
“*”: questo operatore esegue le moltiplicazioni
“/”: questo operatore esegue le divisioni
“%”: operatore modulo, restituisce il resto della divisione tra i due operandi a cui è applicato
Ovviamente è possibile combinare più operatori aritmetici all’interno di una stessa espressione, nel fare questo però è importante ricordarsi che gli operatori hanno un ordine di precedenza (proprio come in aritmetica).
Per cui la seguente espressione:
int ris = 3+9*2-2/2;
assegna alla variabile ris un valore pari a 20. Infatti hanno la precedenza gli operatori * e /, quindi + e -. Utilizzando le parentesi tonde è possibile riscrivere questa espressione in modo più ordinato lasciandone invariato il risultato:
int a = 3 + (9*2) - (2/2);
Come detto l’operatore “+” può anche essere utilizzato per concatenare (unire) due o più stringhe, come mostrato nel seguente esempio:
String nome = “Bill”; String cognome = “Gates”; String nominativo = nome + ” ” + cognome; System.out.println(nominativo);
L’output di questo esempio è:
Bill Gates
In quanto si sono unite le tre stringhe “Bill”, ” “, “Gates”.
Operatori unari
Gli operatori unari richiedono un solo operando, ma eseguono varie operazioni come l’incremento o il decremento di uno, negano un’espressione o invertono il valore di un booleano.
++ incrementa il valore della variabile a cui si riferisce di una unità. Es:
a++; ++a;
la posizione dell’operatore unario in questo caso non è casuale: nel primo caso (++ posizionato subito dopo la variabile) la variabile viene incrementata dopo l’utilizzo, nel secondo, subito prima. Ad esempio:
int a = 4; System.out.println(a++); //Stampa 4 ed incrementa a di uno. Quindi ora a è uguale a 5. System.out.println(a++); //Incrementa a di 1 (quindi 5+1 = 6) e ne stampa il valore. In questo caso quindi stamperà 6
— decrementa il valore della variabile a cui si riferisce di una unità. Anche in questo caso la posizione ne determina il momento di applicazione.
! inverte il valore di un booleano
Esempio:
int num = 2;
boolean ris = false; System.out.println(!ris);
L’output di questo esempio è:
true
Nell’articolo successivo continueremo l’analisi degli Operatori e introdurremo le Espressioni, le Istruzioni ed i Blocchi.
Commenti recenti