INTRODUZIONE A JAVA
STRUTTURA DEI PROGRAMMI JAVA
Le entità minime che noi possiamo rappresentare all’interno di un programma Java sono Attributi e Metodi che sono i componenti di base di un programma Object Oriented. Entrambi non vivono di vita propria all’interno di un programma scritto in Java ma devono essere sempre inseriti all’interno di una definizione di una classe. Una classe la possiamo considerare come l’entità logica e autonoma di base del linguaggio. Gli attributi e i metodi sono conosciuti anche con il nome di membri della classe.
I membri di una classe si suddividono in membri di istanza e membri di classe. La definizione di una classe in Java può contenere sia membri di istanza che membri di classe o entrambi. Gli attributi e i metodi di classe in Java si chiamano membri statici.
La definizione di una classe deve essere sempre implementata all’interno di un file sorgente avente estensione .java
Il nome del file sorgente deve essere necessariamente lo stesso della classe. All’interno di un unico sorgente possiamo dichiarare più classi.
I PACKAGE
Solo una sarà la classe principale che è poi quella che fornisce il nome al file sorgente. Un sorgente in Java fa sempre parte di un namespace che viene utilizzato per non avere delle collisioni tra programmi Java differenti che hanno lo stesso nome, inoltre organizzano il codice Java in unità logiche più coerenti. All’interno di un namespace non possono esistere più programmi aventi lo stesso nome. Esplicitamente o implicitamente un programma Java fa sempre parte di un package.
I MODULI
Più programmi in Java possono appartenere tutti allo stesso spazio dei nomi. Le classi che appartengono allo stesso package godono di una relazione privilegiata, in quanto si considerano parti di una unità logica coerente, quindi più stretta rispetto a classi che si trovano in package diversi. Infine, il package può appartenere ad una entità ancora più alta, il modulo. Vedremo in seguito come funzionano, come si rappresentano e come si creano i moduli. I moduli ci permettono di strutturare i programmi in componenti software distinti che però possono interagire tra loro.
Un modulo può contenere al proprio interno un insieme di package, i moduli a loro volta interagiscono fra loro esportando alcuni package che contengono in modo che altri moduli possono importarli ed utilizzarli in modo opportuno. Questo significa che alcuni package sono stati concepiti per restare all’interno di un modulo, altri per essere esportati. I moduli in Java ci consentono di ragionare ed avere package privati e pubblici. È questa caratteristica dei moduli che ci consente di realizzare software sviluppato per componenti.
RENDERE UN PROGRAMMA ESEGUIBILE
Se vogliamo rendere un programma eseguibile, dobbiamo far si che sia la classe ad essere eseguibile, questo lo si fa attraverso un particolare metodo statico chiamato main(). Quello che vedi in basso è il più semplice programma che si possa realizzare in Java.
COMPILAZIONE DI UN PROGRAMMA JAVA
LINGUAGGI INTERPRETATI
Per prima cosa dobbiamo capire bene la differenza tra un interprete e un compilatore. Quando scriviamo un programma con un linguaggio di programmazione interpretato come Python e Ruby non esiste una fase di compilazione vera e propria, il sorgente viene passato al momento dell’esecuzione ad un programma speciale che si chiama Interprete, che esamina il file sorgente ed esegue una istruzione alla volta. Questo significa che ogni volta che eseguiamo il programma l’interprete riesegue una istruzione per volta e la rende eseguibile in linguaggio macchina.
LINGUAGGI COMPILATI
Viceversa, quando compiliamo il programma in linguaggi come C, C++, Go etc. Il sorgente viene compilato e reso eseguibile in forma binaria nella particolare piattaforma hardware ospitante, questo programma eseguibile può essere messo in esecuzione ad esempio da un terminale. I programmi compilati hanno performance più elevate rispetto a quelli interpretati, però hanno un problema di fondo, cioè la portabilità, ossia l’esecuzione su diverse piattaforme hardware, questo significa che il codice prodotto è adatto ad un particolare processore e Sistema Operativo, per eseguire lo stesso programma su architetture diverse occorrono ulteriori step di compilazione e a volte è necessario modificare i sorgenti.
JAVA
In Java si è adottata una diversa strada, Java è un linguaggio parzialmente interpretato e compilato, è una via di mezzo tra gli interpreti e i compilatori. Il Bytecode è un formato speciale, non è la traduzione in linguaggio macchina per una specifica piattaforma, è il codice macchina per una macchina virtuale la JVM, (Java Virtual Machine). La JVM esegue l’ultimo step di compilazione e provvede a mandare in esecuzione il nostro programma. Un programma Java scritto per Mac può essere messo in esecuzione su una piattaforma Windows o Linux dotate di propria JVM senza alcun bisogno di modificare i sorgenti o ricompilare il codice.
Scrivi un commento