Java 12 - Nuove Funzionalità

Ciao a tutti, futuri sviluppatori Java! Sono entusiasta di essere il vostro guida in questo viaggio emozionante attraverso il mondo di Java 12. Come qualcuno che ha insegnato programmazione per molti anni, posso assicurarvi che Java è un linguaggio fantastico per iniziare, e la versione 12 porta alcune nuove funzionalità interessanti. Allora, immergiamoci e esploriamo queste nuove aggiunte insieme!

Java 12 - New Features

Dichiarazioni di Controllo in Java

Prima di passare alle nuove funzionalità, esaminiamo rapidamente alcune dichiarazioni di controllo di base in Java. Queste sono le basi di qualsiasi programma, e capirle è fondamentale per padroneggiare Java.

Dichiarazione If-Else

La dichiarazione if-else è come un bivio nel vostro programma. Permette al codice di prendere decisioni basate su determinate condizioni.

int età = 18;
if (età >= 18) {
System.out.println("Puoi votare!");
} else {
System.out.println("Mi dispiace, sei troppo giovane per votare.");
}

In questo esempio, il programma controlla se l'età è 18 o maggiore. Se lo è, stampa "Puoi votare!". Altrimenti, stampa il messaggio "troppo giovane".

Ciclo For

Il ciclo for è come un lavoratore fedele che ripete un compito un numero specifico di volte.

for (int i = 1; i <= 5; i++) {
System.out.println("Conto: " + i);
}

Questo ciclo conteggerà da 1 a 5, stampando ogni numero. È come avere un piccolo assistente che conta per te!

Programmazione Orientata agli Oggetti

Ora, parliamo di una delle superpotenze di Java: la Programmazione Orientata agli Oggetti (OOP). In Java, tutto è un oggetto (beh, quasi tutto).

Classi e Oggetti

Pensate a una classe come a un modello per creare oggetti. Creiamo una semplice classe Dog:

public class Dog {
String nome;
int età;

public void abbaia() {
System.out.println("Woof! Woof!");
}
}

Ora, possiamo creare oggetti Dog:

Dog mioCane = new Dog();
mioCane.nome = "Buddy";
mioCane.età = 3;
mioCane.abbaia();  // Questo stamperà "Woof! Woof!"

Non è fantastico? Abbiamo appena creato un cane virtuale che può abbaiare!

Classi Incorporate in Java

Java viene con molte classi incorporate che rendono le nostre vite più facili. Esaminiamo una delle più utilizzate: la classe String.

String saluto = "Ciao, Mondo!";
System.out.println(saluto.length());  // Stampa 13
System.out.println(saluto.toUpperCase());  // Stampa "CIAO, MONDO!"

La classe String ha molti metodi utili come length() per ottenere la lunghezza della stringa, e toUpperCase() per convertirla in maiuscolo.

Nuove Funzionalità in Java 12

Ora, esploriamo alcune delle nuove funzionalità introdotte in Java 12!

Espressioni Switch (Funzionalità in Anteprima)

Java 12 ha introdotto un'anteprima delle espressioni switch, che rendono le dichiarazioni switch più potenti e concise.

String giorno = "LUNEDI'";
String risultato = switch (giorno) {
case "LUNEDI", "VENERDI", "DOMENICA" -> "Rilassati";
case "MARTEDI" -> "Lavora sodo";
case "GIOVEDI", "SABATO" -> "Gioca sport";
case "MERCOLEDI" -> "Vai a fare shopping";
default -> "Giorno sconosciuto";
};
System.out.println(risultato);

Questa nuova sintassi ci permette di usare frecce (->) invece di due punti e dichiarazioni break, rendendo il codice più pulito e meno soggetto a errori.

Miglioramenti alla Classe String

Java 12 ha aggiunto nuovi metodi alla classe String. Uno di loro è indent(), che permette di aggiungere o rimuovere l'indentazione da ogni riga di una stringa.

String testo = "Ciao\nMondo";
System.out.println(testo.indent(4));

Questo stamperà:

Ciao
Mondo

Ogni riga è indentata di 4 spazi. Non è carino?

Collectors.teeing()

Java 12 ha introdotto un nuovo raccoglitore chiamato teeing(). È come avere due raccoglitori separati e poi combinare i loro risultati.

import java.util.stream.Collectors;

double media = List.of(1, 2, 3, 4, 5)
.stream()
.collect(Collectors.teeing(
Collectors.summingDouble(i -> i),
Collectors.counting(),
(somma, conto) -> somma / conto));

System.out.println("Media: " + media);  // Stampa "Media: 3.0"

Questo codice calcola la media di una lista di numeri utilizzando il nuovo raccoglitore teeing(). È un po' avanzato, ma mostra quanto possa essere potente l'API stream di Java!

Conclusione

Abbiamo solo sfiorato la superficie delle nuove funzionalità di Java 12, ma spero che questo vi dia un'idea di cosa è possibile. Ricordate, imparare a codificare è come imparare una nuova lingua - richiede tempo e pratica, ma è incredibilmente gratificante.

Mentre chiudiamo, mi ricordo di uno studente che mi disse una volta, "Java è come un coltello svizzero - ha uno strumento per ogni lavoro!" E aveva assolutamente ragione. Con ogni nuova versione, Java aggiunge più strumenti a quel coltello, rendendolo ancora più versatile e potente.

Continuate a programmare, continuate a imparare, e, soprattutto, divertitevi! Il mondo di Java è vasto ed entusiasmante, e sei solo all'inizio del vostro viaggio. Chi lo sa? Forse sarete voi a creare la prossima grande funzionalità in Java 13!

Credits: Image by storyset