Concetti Chiave
- Le variabili in Java hanno uno "scope" che determina dove possono essere utilizzate, con variabili membro e locali che hanno ambiti distinti.
- L'auto referenza esplicita utilizza "this" per evitare conflitti di omonimia, migliorando la chiarezza nel riferimento alle variabili.
- I metodi statici non necessitano di istanze di oggetti e il metodo Main funge da entry point per le applicazioni Java, richiedendo specifiche dichiarazioni.
- Le classi interne possono essere dichiarate all'interno di altre classi, mentre le classi locali sono definite all'interno di metodi e devono utilizzare variabili final.
- La visibilità delle classi interne è limitata al blocco di codice in cui sono definite, consentendo un incapsulamento efficiente.
Qual è lo Scope delle variabili?
Le classi contengono spesso delle Variabili le quali hanno uno “Scope”, ossia una regione di codice all’interno della quale essa può essere richiamata attraverso il suo identificatore. Le variabili dichiarate all’interno del blocco di dichiarazione di una classe sono dette Variabili Membro mentre le variabili dichiarate all’interno del blocco di dichiarazione di un metodo sono dette Variabili Locali. Metodi differenti possono avere lo stesso identificatore delle variabili membro.
Auto referenza esplicita e implicita
Le variabili possono anche Auto Referenziarsi Esplicitamente, ossia si potrebbe avere un caso in cui compaia la scrittura “valore = valore;” tuttavia scritto in questo modo risulterebbe scorretto e per non creare una nuova variabile basta semplicemente scrivere “this.valore = valore;” utilizzando la variabile reference This. This permette di riferirsi “all’oggetto attivo” (istanza della classe in esecuzione durante la chiamata del metodo) in quel momento.
Se non si vuole utilizzare la auto referenza esplicita si può ricorrere alla Auto Referenza Implicita scomodando una nuova variabile in modo da non avere problemi di omonimia. Quindi “valore = valore;” si può trasformare in “a = valore;”.
Metodi statici e entry point
Tornando ai metodi, si può riconoscere un metodo particolare che è il metodo Static. Questi metodi non richiedono oggetti attivi e possono essere dichiarati con la seguente forma: Un applicazione Java per essere eseguita richiede che il primo metodo, o “entry point”, sia dichiarato e viene individuato da Main. L’entry point richiede che il metodo sia Static e Public per permettere alla Java Virtual Machine l’accesso.
Classi interne e locali
Le Classi possono essere dichiarate a qualsiasi livello del codice e la loro visibilità è limitata al blocco di codice che ne contiene la definizione. Pertanto si possono avere delle classi definite “Classi interne” che quali si trovano dentro ad altre classi. Queste classi esterne sono dette Incapsulanti per le classi interne. Le classi si possono anche definire all’interno dei metodi di una classe incapsulante e queste classi sono chiamate Classi Locali. L’unico accorgimento che si deve avere con le classi locali è che tutte le variabili utilizzate dalla classe interna e condivise con un metodo della classe incapsulante devono essere definite Final.
Domande da interrogazione
- Qual è la differenza tra variabili membro e variabili locali in una classe?
- Come si utilizza l'auto referenza esplicita in Java?
- Qual è l'importanza del metodo Main in un'applicazione Java?
Le variabili membro sono dichiarate all'interno del blocco di dichiarazione di una classe e possono essere richiamate da qualsiasi metodo della classe, mentre le variabili locali sono dichiarate all'interno del blocco di dichiarazione di un metodo e possono essere utilizzate solo all'interno di quel metodo.
L'auto referenza esplicita si utilizza per evitare ambiguità tra variabili, scrivendo "this.valore = valore;" per riferirsi all'oggetto attivo, invece di "valore = valore;" che risulterebbe scorretto.
Il metodo Main è l'entry point di un'applicazione Java e deve essere dichiarato come Static e Public affinché la Java Virtual Machine possa accedervi e avviare l'esecuzione del programma.