Esercizi Metodi Statici in Java
Ecco degli esercizi con soluzione per praticare l’uso dei metodi statici in Java.
Esercizio 1: Creazione di un Metodo Statico
Creare una classe con un metodo statico che stampa un messaggio.
public class Messaggio { public static void stampaMessaggio() { System.out.println("Ciao, questo è un metodo statico!"); }
public static void main(String[] args) { Messaggio.stampaMessaggio(); }}
Esercizio 2: Calcolo di una Somma
Creare un metodo statico che accetta due numeri interi come parametri e restituisce la loro somma.
public class Calcolatrice { public static int somma(int a, int b) { return a + b; }
public static void main(String[] args) { int risultato = Calcolatrice.somma(5, 10); System.out.println("La somma è: " + risultato); }}
Esercizio 3: Conversione di Temperature
Creare un metodo statico che converte una temperatura da Celsius a Fahrenheit.
public class ConvertitoreTemperatura { public static double celsiusToFahrenheit(double celsius) { return (celsius * 9/5) + 32; }
public static void main(String[] args) { double celsius = 25; double fahrenheit = ConvertitoreTemperatura.celsiusToFahrenheit(celsius); System.out.println(celsius + " gradi Celsius sono " + fahrenheit + " gradi Fahrenheit."); }}
Esercizio 4: Metodo Statico con Array
Creare un metodo statico che accetta un array di numeri interi e restituisce il valore massimo.
public class ArrayUtils { public static int trovaMassimo(int[] numeri) { int massimo = numeri[0]; for (int num : numeri) { if (num > massimo) { massimo = num; } } return massimo; }
public static void main(String[] args) { int[] numeri = {1, 2, 3, 4, 5}; int massimo = ArrayUtils.trovaMassimo(numeri); System.out.println("Il valore massimo è: " + massimo); }}
Esercizio 5: Contatore Statico
Creare una classe con un attributo statico `contatore` e un metodo statico che incrementa e restituisce il contatore.
public class Contatore { private static int contatore = 0;
public static int incrementa() { return ++contatore; }
public static void main(String[] args) { System.out.println("Contatore: " + Contatore.incrementa()); System.out.println("Contatore: " + Contatore.incrementa()); }}
Esercizio 6: Metodo Statico con Oggetti
Creare una classe con un metodo statico che accetta due oggetti `Persona` e restituisce il nome della persona più anziana.
class Persona { private String nome; private int eta;
public Persona(String nome, int eta) { this.nome = nome; this.eta = eta; }
public int getEta() { return eta; }
public String getNome() { return nome; }}
public class ComparatorePersona { public static String trovaPiuAnziano(Persona p1, Persona p2) { return (p1.getEta() > p2.getEta()) ? p1.getNome() : p2.getNome(); }
public static void main(String[] args) { Persona persona1 = new Persona("Mario", 30); Persona persona2 = new Persona("Luigi", 35); String piuAnziano = ComparatorePersona.trovaPiuAnziano(persona1, persona2); System.out.println("La persona più anziana è: " + piuAnziano); }}
Esercizio 7: Validazione di Email
Creare un metodo statico che verifica se una stringa è un indirizzo email valido.
import java.util.regex.Matcher;import java.util.regex.Pattern;
public class ValidatoreEmail { public static boolean emailValida(String email) { String regex = "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(email); return matcher.matches(); }
public static void main(String[] args) { String email1 = "test@example.com"; String email2 = "email.invalida.com";
System.out.println(email1 + " è valida? " + ValidatoreEmail.emailValida(email1)); System.out.println(email2 + " è valida? " + ValidatoreEmail.emailValida(email2)); }}