Concetti Chiave
- Le variabili nelle classi hanno uno scope che ne definisce la visibilità e si dividono in Variabili Membro e Variabili Locali.
- La variabile reference "This" consente di riferirsi all'oggetto attivo per evitare ambiguità nella auto referenza esplicita.
- I metodi Static non richiedono oggetti attivi e sono utilizzati come entry point in un'applicazione Java, iniziando con il metodo Main.
- Le Classi possono essere incapsulanti o interne, con le classi interne limitate al blocco di codice della loro classe esterna.
- Le Classi Locali all'interno di metodi devono avere variabili condivise definite come Final per garantire la loro immutabilità.
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.
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;”.
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: static tipo Nome () {
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.
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?
- Come si utilizza la variabile reference "This" per l'auto referenza esplicita?
- Qual è il ruolo del metodo Static in un'applicazione Java?
Le Variabili Membro sono dichiarate all'interno del blocco di dichiarazione di una classe, mentre le Variabili Locali sono dichiarate all'interno del blocco di dichiarazione di un metodo.
La variabile reference "This" si utilizza per riferirsi all'oggetto attivo, permettendo di distinguere tra variabili con lo stesso nome, ad esempio scrivendo "this.valore = valore;".
Il metodo Static non richiede oggetti attivi e serve come "entry point" per l'applicazione Java, permettendo alla Java Virtual Machine di accedere al metodo Main, che deve essere dichiarato Static e Public.