Una variabile ci fornisce una memoria con nome che i nostri programmi possono manipolare. Ogni variabile in Java ha un tipo specifico, che determina la dimensione e il layout della memoria della variabile; l’intervallo di valori che possono essere memorizzati all’interno di tale memoria; e l’insieme di operazioni che possono essere applicate alla variabile.
È necessario dichiarare tutte le variabili prima che possano essere utilizzate. Di seguito è riportata la forma di base di una dichiarazione di variabile −
data type variable ...] ;
Qui il tipo di dati è uno dei tipi di dati di Java e la variabile è il nome della variabile. Per dichiarare più di una variabile del tipo specificato, è possibile utilizzare un elenco separato da virgole.
Di seguito sono riportati esempi validi di dichiarazione e inizializzazione delle variabili in Java −
Esempio
int a, b, c; // Declares three ints, a, b, and c.int a = 10, b = 10; // Example of initializationbyte B = 22; // initializes a byte type variable B.double pi = 3.14159; // declares and assigns a value of PI.char a = 'a'; // the char variable a iis initialized with value 'a'
Questo capitolo spiegherà vari tipi di variabili disponibili in linguaggio Java. Ci sono tre tipi di variabili in Java −
- Variabili locali
- Variabili di istanza
- Classe/Variabili statiche
Variabili locali
-
Le variabili locali sono dichiarate in metodi, costruttori o blocchi.
-
Le variabili locali vengono create quando viene inserito il metodo, il costruttore o il blocco e la variabile verrà distrutta una volta uscito dal metodo, dal costruttore o dal blocco.
-
I modificatori di accesso non possono essere utilizzati per le variabili locali.
-
Le variabili locali sono visibili solo all’interno del metodo, del costruttore o del blocco dichiarati.
-
Le variabili locali sono implementate internamente a livello di stack.
-
Non esiste un valore predefinito per le variabili locali, quindi le variabili locali dovrebbero essere dichiarate e un valore iniziale dovrebbe essere assegnato prima del primo utilizzo.
Esempio
Qui, l’età è una variabile locale. Questo è definito all’interno del metodo pupAge() e il suo ambito è limitato solo a questo metodo.
public class Test { public void pupAge() { int age = 0; age = age + 7; System.out.println("Puppy age is : " + age); } public static void main(String args) { Test test = new Test(); test.pupAge(); }}
Questo produrrà il seguente risultato −
Output
Puppy age is: 7
Esempio
Il seguente esempio usa age senza inizializzarlo, quindi darebbe un errore al momento della compilazione.
public class Test { public void pupAge() { int age; age = age + 7; System.out.println("Puppy age is : " + age); } public static void main(String args) { Test test = new Test(); test.pupAge(); }}
Questo produrrà il seguente errore durante la compilazione −
Output
Test.java:4:variable number might not have been initializedage = age + 7; ^1 error
le Variabili di Istanza
-
le variabili di Istanza sono dichiarati in una classe, ma al di fuori di un metodo, il costruttore o il blocco.
-
Quando viene allocato uno spazio per un oggetto nell’heap, viene creato uno slot per ogni valore di variabile di istanza.
-
Le variabili di istanza vengono create quando viene creato un oggetto con l’uso della parola chiave ‘new’ e distrutte quando l’oggetto viene distrutto.
-
Le variabili di istanza contengono valori che devono essere referenziati da più di un metodo, costruttore o blocco o parti essenziali dello stato di un oggetto che devono essere presenti in tutta la classe.
-
Le variabili di istanza possono essere dichiarate a livello di classe prima o dopo l’uso.
-
I modificatori di accesso possono essere dati per esempio variabili.
-
Le variabili di istanza sono visibili per tutti i metodi, costruttori e blocchi nella classe. Normalmente, si consiglia di rendere queste variabili private (livello di accesso). Tuttavia, la visibilità per le sottoclassi può essere data per queste variabili con l’uso di modificatori di accesso.
-
Le variabili di istanza hanno valori predefiniti. Per i numeri, il valore predefinito è 0, per i booleani è false e per i riferimenti agli oggetti è null. I valori possono essere assegnati durante la dichiarazione o all’interno del costruttore.
-
È possibile accedere direttamente alle variabili di istanza chiamando il nome della variabile all’interno della classe. Tuttavia, all’interno dei metodi statici (quando alle variabili di istanza viene data l’accessibilità), dovrebbero essere chiamate utilizzando il nome completo. ObjectReference.Nome variabile.
Esempio
import java.io.*;public class Employee { // this instance variable is visible for any child class. public String name; // salary variable is visible in Employee class only. private double salary; // The name variable is assigned in the constructor. public Employee (String empName) { name = empName; } // The salary variable is assigned a value. public void setSalary(double empSal) { salary = empSal; } // This method prints the employee details. public void printEmp() { System.out.println("name : " + name ); System.out.println("salary :" + salary); } public static void main(String args) { Employee empOne = new Employee("Ransika"); empOne.setSalary(1000); empOne.printEmp(); }}
Questo produrrà il seguente risultato −
Output
name : Ransikasalary :1000.0
Classe/Variabili Statiche
-
Variabili di classe, noto anche come le variabili statiche sono dichiarati con la parola chiave static in una classe, ma al di fuori di un metodo, un costruttore o un blocco.
-
Ci sarebbe solo una copia di ogni variabile di classe per classe, indipendentemente dal numero di oggetti creati da essa.
-
Le variabili statiche sono raramente utilizzate oltre a essere dichiarate come costanti. Le costanti sono variabili dichiarate come pubbliche / private, definitive e statiche. Le variabili costanti non cambiano mai dal loro valore iniziale.
-
Le variabili statiche sono memorizzate nella memoria statica. È raro utilizzare variabili statiche diverse da quelle dichiarate definitive e utilizzate come costanti pubbliche o private.
-
Le variabili statiche vengono create all’avvio del programma e distrutte all’arresto del programma.
-
La visibilità è simile alle variabili di istanza. Tuttavia, la maggior parte delle variabili statiche sono dichiarate pubbliche poiché devono essere disponibili per gli utenti della classe.
-
I valori predefiniti sono uguali alle variabili di istanza. Per i numeri, il valore predefinito è 0; per i booleani, è false; e per i riferimenti agli oggetti, è null. I valori possono essere assegnati durante la dichiarazione o all’interno del costruttore. Inoltre, i valori possono essere assegnati in blocchi di inizializzazione statici speciali.
-
È possibile accedere alle variabili statiche chiamando con il nome della classe className.Nome variabile.
-
Quando si dichiarano le variabili di classe come public static final, i nomi delle variabili (costanti) sono tutti in maiuscolo. Se le variabili statiche non sono pubbliche e definitive, la sintassi di denominazione è la stessa delle variabili locali e di istanza.
Esempio
import java.io.*;public class Employee { // salary variable is a private static variable private static double salary; // DEPARTMENT is a constant public static final String DEPARTMENT = "Development "; public static void main(String args) { salary = 1000; System.out.println(DEPARTMENT + "average salary:" + salary); }}
Questo produrrà il seguente risultato −
Output
Development average salary:1000
Nota − Se le variabili sono accessibili da un fuori classe, la costante deve essere letta come Dipendente.DIPARTIMENTO
Qual è il prossimo?
Hai già usato i modificatori di accesso (public & private) in questo capitolo. Il prossimo capitolo spiegherà in dettaglio i modificatori di accesso e i modificatori di non accesso.