01. Corso completo di Programmazione Java – Hello World!

Corso Java - Hello World Nel post precedente abbiamo illustrato alcuni concetti base del linguaggio di programmazione Java. Che noia, che barba! E se iniziassimo a divertirci un pochino fin da subito? Oggi andremo a scrivere le nostre prime linee di codice in Java, per salutare il nuovo mondo in cui stiamo per introdurci! Ovviamente avremo bisogno di qualche strumento e sarete senz’altro felici di sapere che, per cominciare a lavorare in Java, bastano davvero pochi strumenti e, non meno importante, zero soldi! Iniziamo a vedere cosa ci serve.

Strumenti di sviluppo da scaricare e installare

Eccovi il nostro piccolissimo elenco di strumenti da avere per poter iniziare a lavorare:

  1. Java Developer Kit (d’ora in poi JDK). Consente di eseguire programmi Java, contiene la Java Virtual Machine (da ora JVM) e le librerie Java (API).
  2. Integrated Development Environment (IDE). Noi utilizzeremo Eclipse.

Per installare e reperire il JDK ed Eclipse vi rimando alla prima parte del post Scaricare, installare e configurare l’ambiente di sviluppo Android oppure al video tutorial “Hello World Java con Eclipse” su CoseNonJaviste. Qua mi preme sottolineare alcuni aspetti che nel post su Android erano passati un po’ in sordina:

  • il JDK è scaricabile dal sito Oracle ed è disponibile per il download per i sistemi Windows e Linux based, mentre sul sistema operativo Mac OSX lo trovate preinstallato. Per Linux avete anche un’altra opzione: scaricare openJDK, che fa del supporto all’open source e agli open standard il suo stendardo
  • Eclipse è uno degli IDE di sviluppo più sofisticati e potenti che siano mai stati realizzati. La sua natura è quella di una piattaforma per costruire e far girare strumenti di sviluppo integrati end-to-end. E’ open source è la sua architettura è progettata per essere facilmente integrabile con plugin esterni. E’ mantenuto da Eclipse.org, un corsorzio open di vendor interessanti a collaborare per creare ambienti di sviluppo migliori e realizzare prodotti interoperabili. I membri della fondazione Eclipse.org erano più di 80 già nel 2003 e annoverano nomi come Ericsson, HP, IBM, Intel, SAP, Red Hat. A riguardo della localizzazione di Eclipse è possibile impostare la lingua che si preferisce, ma personalmente vi consiglio fortemente di ternerlo in Inglese: se avete problemi e dovete cercare in forum o consultare altre risorse online l’avere la corrispondenza con le voci Inglesi dei menu è molto di aiuto.
  • per completezza cito il fatto che Eclipse non è il solo IDE valido a disposizione per sviluppare in Java: ottimi sono anche Oracle NetBeans e IntelliJ IDEA.

Del JDK e delle sue parti costituenti parleremo a fondo nel post che introduce i concetti base di Java.

La prima classe non si scorda mai

Creiamo un nuovo progetto

Creiamo innanzitutto un nuovo progetto Java. Avviamo Eclipse, Menu File -> New -> Java Project. Impostiamo il nome del progetto a HelloWorld.

Nuovo Progetto
Creiamo una nuova Classe

Java è un linguaggio fortemente object oriented, a tal punto che non consente nemmeno di creare una funzione che non sia un metodo di una classe. Per questo se vogliamo scrivere in console “Hello World” dobbiamo creare una nuova classe allo scopo. Per farlo scegliamo dal Menu File -> New -> Class. In questo modo viene avviato il Wizard di creazione nuova classe Java. Impostiamo i dati come mostrato nello screenshot seguente:

Nuova Classe
I Package

Un package Java è un meccanismo per organizzare classi Java all’interno di sottogruppi ordinati. In generale, un nome comincia con il dominio di primo livello dell’organizzazione che lo produce, seguito dal dominio e da altri eventuali sottodomini, elencati in ordine inverso. L’organizzazione può infine scegliere un nome specifico per quel particolare package. Inoltre, sempre per convenzione, i nomi dei package dovrebbero contenere solo lettere minuscole. Nel nostro caso otteniamo it.devapp.corsojava.helloworld. Su file system i package vengono organizzati come gerarchia di cartelle: avremo la cartella it che contiene la cartella devapp e così via:

Package
Convenzioni di nomenclatura

Facciamo subito notare che in Java sono frequenti convenzioni varie, su nomenclatura, stile della formattazione, organizzazione dei progetti e così via. Queste convenzioni non vanno vissute come restrizioni, ma come un ausilio: infatti codice standard rende più facile leggere e capire il software scritto da altre persone, agevolando la ownership del codice e facilitando la collaborazione in un gruppo di lavoro. Per le classi vige invece la convenzione dell’upper camel case: la prima lettera di un identificativo è maiuscola, così come la prima lettera di ogni parola concatenata successiva.

La nostra classe

Dopo aver premuto Finish viene creata la nostra classe:

package it.devapp.corsojava.helloworld;
 
public class HelloWorld {
	public static void main(String[] args) {
	}
}
Lanciamo Hello World!

Aggiungiamo la linea di codice seguente, che stampa in console la string “Hello World”:

package it.devapp.corsojava.helloworld;
 
public class HelloWorld {
	public static void main(String[] args) {
		System.out.println("Hello World");
	}
}

Facciamo click di destro sulla classe HelloWorld e scegliamo Run as -> Java Application. In console vedremo magicamente scritto “Hello World”:

Hello World in Console

Complimenti: avete fatto appena girare il vostro primo programma Java.

Un po’ di spiegazioni

Come abbiamo visto per creare un Hello World! in Java non si può scrivere una funzione: le funzioni non esistono! Si possono utilizzare solo metodi di classe; nel nostro caso abbiamo quindi creato la classe HelloWorld: questo mostra subito quanto sia rigoroso (pedante direbbero alcuni) l’approccio Java all’Object Orientation.

Il metodo statico main è un metodo speciale ed è la sua presenza ad aver consentito il lancio come Java Application della classe HelloWorld. Per ora non spieghiamo cosa significhi metodo statico, diciamo invece che il parametro in ingresso di tale metodo si chiama args ed è un array di stringhe: sono i parametri in ingresso al programma Java quando viene lanciato da prompt Windows (o terminale Linux).

Facciamo un esempio: supponiamo che il nostro programma prenda in ingresso un parametro name, il nome di colui che vogliamo salutare, e una volta lanciato scriva in console “Hello name”.

Come lo scriveremmo questo programma? Così:

package it.devapp.corsojava.helloworld;
 
public class HelloWorld {
	public static void main(String[] args) {
		if (args.length != 1)
			System.out.println("Numero Parametri non corretto");
		else {
			System.out.println("Hello " + args[0]);
		}
	}
}

Sì, lo so: non vi ho ancora detto niente del linguaggio Java e comincio a spararvi codice a video. Ma non abbiate timore: il vostro Virgilio è accanto a voi per guidarvi! In sostanza se il numero di parametri passato al programma è diverso da zero viene stampato a video un messaggio di notifica, altrimenti viene prelevato dall’array il parametro (args[0]) e salutato a video.

Per provarlo: facciamo click di destro sulla classe HelloWorld e scegliamo Run as -> Run Configurations…. Andiamo nel tab Arguments e scriviamo il nome della persona da salutare, ad esempio per essere originali “devAPP”:

Cliccando su Run in console verrà scritto “Hello devAPP”.

Conclusioni

Si dice spesso che scrivere l’HelloWorld è il 30% della fatica nell’imparare un nuovo linguaggio. Questa è una pia bugia ovviamente, per rinfrancare coloro che intraprendono il lungo viaggio dell’apprendimento :-). D’altra parte avete imparato una lingua molto difficile, l’Italiano, quando eravate piccolissimi: chi vi fermerà dall’imparare Java?

Il corso continua con…

02 – I Fondamenti di Java – Parte I.

By Manuele Piastra

Sono un Project Manager i cui skill tecnici sono focalizzati al momento sullo sviluppo di applicazioni JavaEE (application server IBM Websphere 7.0 utilizzando JSF (RichFaces), JPA (EclipseLink) ed EJB3) ed Android. Presso OmniaGroup ricopro il ruolo di Training Manager: seleziono il personale tecnico, mi occupo della sua crescita formativa organizzando Corsi e Workshop sia interni che esterni, molti dei quali hanno visto me come docente. Ho tenuto sette sessioni di un corso di formazione di 50 ore sulle tecnologie JavaEE su Application Server WebSphere IBM presso il nostro cliente principale, Coop Italia, dei cui sistemi informativi sono consulente di riferimento. Sono blogger su CoseNonJaviste, blog tecnico che si occupa di Android e Java. Consulta il mio Curriculum online per maggiori informazioni.

17 comments

  1. ciao!premetto che sono insesperto! avevo un piccolo problema con il mio mac infatti non mi trova jdk su spotlight quindi penso non ci sia installato! è inesatto? dove potrei scaricarlo(riuscite a dare il link)?

    grazie mille!!

      1. Il numero di post non è ancora definito, ma saranno diversi, 15-20…vedremo! Saluti e grazie di nuovo a tutti per l’interesse e i complimenti!

  2. Complimenti, niente male come prima lezione!Mi sa che stavolta ci provo anche io…ovviamente con l’impegno adeguato!

    1. Ciao, grazie per il complimenti. In realtà nel post facciamo vedere come realizzare un “Hello World” in Java svincolato da un suo utilizzo su uno smartphone. Di questi tempi, tralasciando soluzioni come l’utilizzo della piattaforma JavaME (Java Micro Edition), sottoinsieme del linguaggio Java per “programmare” dispositivi quali PDA e cellulari, la soluzione migliore che ti consiglio se ti piace il linguaggio Java e vuoi realizzare applicazioni mobile è quello di sviluppare su piattaforma Android. Puoi consultare questo post: http://android.devapp.it/t002-creiamo-il-nostro-primo-programma-per-android-hello-world. Saluti

  3. Ciao, ho appena creato il mio primo programma Hello World!!

    Questa guida é scritta veramente bene! Avete intenzione di creare un libro?

    Grazie!

  4. scusate , nella creazione della classe non mi da la possibilità di proseguire, mi dice type class is empity.. cosa ho sbagliato?

  5. Salve a tutti. Scusate ma per eseguire il codice con Java application, cosa devo mettere con main class? premendo accanto sul tasto Search compare una finestra con una serie di classi…ne ho provate alcune ma tutte mi fa visualizzare almeno un errore nella console…Soluzioni??

Comments are closed.