|
Java Tutorial - Parte 1 0.1
Un tutorial per esempi
|
Questo corso di programmazione parte da ZERO ed insegna al lettore, oltre alla sintassi del linguaggio di programmazione Java, anche altre tecniche altrettanto importanti quali:
Essendo un corso che parte da ZERO non è richiesta alcuna preparazione specifica. Ovvio che la conoscenza di un altro linguaggio di programmazione può aiutare il lettore a comprendere meglio gli aspetti comuni della programmazione quali la progettazione, la scrittura del codice, la struttura dei calcolatori. Tuttavia, questi argomenti sono discussi in modo approfondito nella guida che state leggendo.
Alcuni di voi potrebbero restare sorpresi per la scelta di usare Java, un linguaggio potente e per così dire difficile, per iniziare la programmazione: molto probabilmente avrete sentito parlare di altri linguaggi più adatti ai principianti come BASIC oppure i linguaggi di scripting come il perl o il PHP.
Ebbene, la comprensione di un linguaggio di programmazione non è, di per sè, un compito particolarmente difficile in quanto ogni linguaggio è composto da regole, parole chiave e da una sintassi rigida. Queste regole e parole chiave sono poche, anzi pochissime in alcuni linguaggi, e decisamente di più in altri. Dopo che il neo-programmatore ha imparato la sintassi del linguaggio ed i risultati che si ottengono usando le istruzioni disponibili, si può affermare che egli conosca la programmazione di quel linguaggio. Tutt'altra cosa, però, è padroneggiarlo completamente: per ottenere questo risultato non c'è altro che l'esperienza.
La complessità di un linguaggio dipende molto dal numero di istruzioni e costrutti che il linguaggio mette a disposizione per ottenere un certo risultato; i linguaggi più semplici sono perciò quelli che possiedono pochissime istruzioni ed il linguaggio C è sicuramente tra questi. Decisamente più potente è il suo fratello maggiore, il C++, per il quale la curva di apprendimento è sicuramente più lunga rispetto al C ma che offre al programmatore strumenti che, una volta assimilati, lo aiutano a non commettere errori. Ben difficilmente un programmatore che conosce linguaggi potenti come C++, Java o C# userebbe un linguaggio di categoria inferiore per sviluppare una applicazione a meno che non vi sia costretto dalle circostanze.
Premesso che questo tutorial si rivolge ai neofiti, esso affronta argomenti che possono essere considerati avanzati. La particolarità di questo tutorial rispetto a molti altri disponibili è che tutti gli esempi presentati qui sono programmi reali, che hanno una utilità, anche se marginale: questo tutorial segue la filosofia di apprendimento learn by examples (=impara dagli esempi). Di seguito vengono elencati gli argomenti trattati nei vari capitoli di questo tutorial:
Nonostante questo tutorial sia rivolto anche ai neofiti, gli autori presuppongono che il lettore di questa guida non sia totalmente a digiuno di alcuni concetti fondamentali che riguardano l'utilizzo del computer.
E' altresì necessario possedere un computer adeguato in quanto a potenza elaborativa se si intende provare sul campo i programmi presentati nella guida. Oggigiorno, qualunque moderno computer è in grado di compilare ed eseguire un semplice programma ma, tuttavia, alcuni degli strumenti usati in questa guida hanno requisiti di sistema specifici. In particolare, l'ambiente usato per la compilazione dei programmi che scriveremo nelle prossime sezioni può funzionare solo su sistemi a 32 o 64 bits.
La guida si rivolge sopratutto a utenti di sistemi Windows™ in quanto gli strumenti usati e da installare nel sistema sono specifici per tale piattaforma. Tuttavia, anche gli utenti di sistemi unix o unix-like come per esempio GNU/Linux possono usare questa guida ma l'installazione degli strumenti necessari alla scrittura, compilazione ed esecuzione delle applicazioni presentate in questa opera potrebbe non essere banale. Considerato l'elevato numero di sistemi e distribuzioni unix-like, ognuno con le sue caratteristiche peculiari, non è possibile scrivere le istruzioni passo-passo per l'installazione dell'ambiente di sviluppo in modo tale che possano essere usate su tutti i sistemi.
Per poter installare il JDK (Java Development Kit) è necessario disporre di un sistema win32 non troppo datato. Questa opera è stata scritta utilizzando un sistema Windows 11 ma dovrebbe essere supportato anche Windows 8 e superiori.
Si presuppone inoltre che il lettore abbia familiarità con i seguenti concetti:
Nel caso il lettore sia totalmente a digiuno nell'uso del Prompt dei comandi MS-DOS (caso che, purtroppo, al giorno d'oggi si verifica sempre più frequentemente) egli troverà al seguente link: I principali comandi del Prompt di MS-DOS una breve guida ai comandi usati più frequentemente.
Poichè questi sistemi sono esclusivamente a 32 bit (o superiori), i requisiti hardware e software di un sistema GNU/Linux o unix sono sicuramente soddisfatti se nel computer è installato uno di questi sistemi. Per quanto riguarda gli strumenti di sviluppo quali il compilatore GCC, tutti questi sistemi sono già normalmente equipaggiati con essi.
Alcune distribuzioni GNU/Linux, tuttavia, non installano automaticamente gli strumenti di sviluppo Java e sarà necessario, in questo caso, usare gli strumenti di amministrazione per provvedervi. Di solito, nelle distribuzioni moderne, si tratta di strumenti grafici che facilitano enormemente il compito all'amministratore del sistema.
Si presuppone inoltre che l'utente abbia familiarità con i seguenti concetti:
In questa sezione verranno descritte le convenzioni sintattiche e di stile applicate in tutte le pagine di questo tutorial. Il tutorial è suddiviso in capitoli i quali corrispondono, nella versione HTML, ad una pagina; in ogni capitolo verrà trattato un argomento specifico.
Il capitolo è a sua volta suddiviso in sezioni mentre queste ultime possono contenere una o più sotto-sezioni. Il paragrafo è la unità più piccola; i paragrafi sono divisi l'un l'altro da una riga vuota. Per esempio, il testo che state leggendo fà parte del capitolo Introduzione, sezione Convenzioni.
Nel mondo dei computer e dell'informatica in generale, la lingua usata sin dagli inizi è l'inglese e, ancora oggi, l'inglese è, e si suppone rimarrà ancora per molto tempo, la lingua più diffusa. Per quanto possibile gli autori cercheranno sempre di trovare la parola corrispondente in italiano ma, a volte, non è possibile oppure il vocabolo inglese è divenuto di uso comune anche in Italia. Se prendiamo, ad esempio, le memorie di massa, il termine inglese harddisk è molto più conosciuto in Italia del corrispondente termine italiano disco rigido oppure anche disco fisso.
In questo tutorial alcune parole saranno scritte con uno stile diverso dal testo normale:
switch (parola riservata), e println (metodo della libreria di base di Java). Oltre allo stile applicato alle singole parole, nella guida vengono usati stili particolari applicati ad interi paragrafi per evidenziarne l'importanza oppure la pericolosità nel caso si commettano errori. Di seguito sono riportati i principali stili di paragrafo usati:
Lo stile codice indica un paragrafo di codice sorgente che deve essere copiato dal lettore nel proprio editor di fiducia come per esempio il seguente:
Questo stile è caratterizzato da un font mono-spaced ed in cui il browser mantiene la formattazione originaria ed è usato per evidenziare calcoli, algoritmi ed, in genere, tutte quelle operazioni in cui è necessaria una formattazione rigida.
Questo stile è caratterizzato da un font mono-spaced e da una formattazione rigida
Questa guida è rilasciata sotto la GNU Free Documentation License (GNU FDL) versione 1.3 che potete trovare nella sua forma originale in lingua inglese nella cartella principale di questo tutorial oppure clikkando questo link. Una traduzione non ufficiale in italiano della GNU FDL 1.3 è disponibile su Wikipedia
Siccome la licenza è scritta in legalese che, sappiamo bene, è di difficile comprensione anche in italiano (figuriamoci in inglese), riporto più sotto i punti essenziali sui quali si fonda la licenza GNU FDL:
Questa guida è stata scritta da Luciano Cattani a partire dal agosto 2024 e rilasciata in Internet nel dicembre 2025. L'opera è stata scritta in originale, nessun capitolo o paragrafo è stato copiato da altre opere o guide nè elettroniche nè cartacee, anche se è possibile che alcune parti di questa opera siano simili a parti di altri lavori che trattano lo stesso argomento. Nel confermare che queste eventuali similitudini sono comunque frutto del caso, l'autore è disponibile, dietro semplice segnalazione, a modificare questa guida in modo che non ci possano essere contestazioni riguardo a copyright di altre opere.
Alcune sezioni di questa guida contengono la traduzione in italiano di articoli, pagine o manuali scritti in altre lingue (nello specifico in inglese); in questi casi l'autore di questa opera segnala il nome dell'autore originale, la data di pubblicazione in Internet ed un link col quale è possibile leggere l'opera originale.
Nonostante questa sia una opera unica, l'autore deve ringraziare alcune persone ed organizzazioni dalle quali ha avuto suggerimenti, idee, linee guida e strumenti usati per creare questa guida. In particolare, desidero ringraziare:
L'autore invita tutti i lettori di questa guida a contribuire a mantenerla aggiornata. La sotto-cartella dox di questo tutorial contiene questa opera in formato trasparente, cioè i sorgenti doxygen che è lo strumento col quale sono state generate queste pagine in formato HTML.
Questa guida è stata scritta usando strumenti software specifici e gli esempi proposti fanno riferimento a costrutti dei linguaggi disponibili da quella versione in poi. Gli strumenti usati e le loro versioni sono:
Lo schema di versioning di questa guida si allinea allo schema usato da quasi tutto il software e la documentazione open source. Il numero di versione è composto di tre cifre decimali separate da un punto
x.y.z
il cui significato, partendo dalla cifra a sinistra è:
x: major version il numero di versione maggiore cambia se e quando nella guida verranno introdotti costrutti del linguaggio Java incompatibili con la versione 22 del JDK y: minor version il numero di versione minore cambia se e quando vengono introdotti nuovi argomenti che richiedono, generalmente, una o più nuove sezioni. x: bug-fix la terza cifra cambia quando vengono corretti errori o imprecisioniCome stabilito dal Preambolo della licenza GNU FDL la licenza prevede per autori ed editori il modo per ottenere il giusto riconoscimento del proprio lavoro, preservandoli dall'essere considerati responsabili per modifiche apportate da altri.
Si rende necessario quindi elencare in questa sezione gli autori e/o gli editori di eventuali copie modificate di questa opera. Accanto al nome dell'autore ed editore, dovranno essere indicate anche le versioni rilasciate da ciascuno, secondo lo schema descritto in Il log delle modifiche.