🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Esercizi su final e static in Java

Codegrind Team•Jul 12 2024

Ecco degli esercizi con soluzione per praticare l’uso di final e static in Java.

Esercizio 1: Variabile Final

Dichiarare una variabile `final` e tentare di modificarne il valore.
public class VariabileFinal {
    public static void main(String[] args) {
        final int COSTANTE = 10;
        System.out.println("Valore della costante: " + COSTANTE);

        // Prova a modificare la variabile final
        // COSTANTE = 20; // Questo causerĂ  un errore di compilazione
    }
}

Esercizio 2: Metodo Statico

Creare un metodo statico in una classe e chiamarlo senza creare un'istanza della classe.
public class MetodoStatico {
    public static void stampaMessaggio() {
        System.out.println("Metodo statico chiamato.");
    }

    public static void main(String[] args) {
        MetodoStatico.stampaMessaggio();  // Chiamata al metodo statico
    }
}

Esercizio 3: Blocco Statico

Utilizzare un blocco statico per eseguire del codice all'avvio della classe.
public class BloccoStatico {
    static {
        System.out.println("Blocco statico eseguito.");
    }

    public static void main(String[] args) {
        System.out.println("Metodo main eseguito.");
    }
}

Esercizio 4: Metodo Final

Creare una classe con un metodo `final` e tentare di sovrascriverlo in una classe derivata.
class ClasseBase {
    public final void metodoFinal() {
        System.out.println("Metodo final della classe base.");
    }
}

class ClasseDerivata extends ClasseBase {
    // Prova a sovrascrivere il metodo final
    // @Override
    // public void metodoFinal() { // Questo causerĂ  un errore di compilazione
    //     System.out.println("Metodo final della classe derivata.");
    // }
}

public class MetodoFinal {
    public static void main(String[] args) {
        ClasseDerivata cd = new ClasseDerivata();
        cd.metodoFinal();
    }
}

Esercizio 5: Variabile Statica

Dichiarare una variabile `static` in una classe e accedervi da un metodo statico e non statico.
public class VariabileStatica {
    public static int contatore = 0;

    public VariabileStatica() {
        contatore++;
    }

    public static void stampaContatore() {
        System.out.println("Contatore: " + contatore);
    }

    public static void main(String[] args) {
        VariabileStatica vs1 = new VariabileStatica();
        VariabileStatica vs2 = new VariabileStatica();
        VariabileStatica.stampaContatore();
    }
}

Esercizio 6: Classe Final

Creare una classe `final` e tentare di ereditarla.
public final class ClasseFinal {
    public void stampaMessaggio() {
        System.out.println("Classe final.");
    }
}

// Prova a ereditare la classe final
// class ClasseDerivata extends ClasseFinal { // Questo causerĂ  un errore di compilazione
// }

public class TestClasseFinal {
    public static void main(String[] args) {
        ClasseFinal cf = new ClasseFinal();
        cf.stampaMessaggio();
    }
}

Esercizio 7: Uso di static e final insieme

Dichiarare una variabile `static final` e accedervi da un metodo statico.
public class StaticFinal {
    public static final String COSTANTE = "Valore costante";

    public static void stampaCostante() {
        System.out.println("Costante: " + COSTANTE);
    }

    public static void main(String[] args) {
        StaticFinal.stampaCostante();
    }
}

Esercizio 8: Classe Statica Interna

Creare una classe statica interna e accedervi dalla classe esterna.
public class ClasseEsterna {
    static class ClasseInterna {
        public void stampaMessaggio() {
            System.out.println("Classe interna statica.");
        }
    }

    public static void main(String[] args) {
        ClasseEsterna.ClasseInterna interna = new ClasseEsterna.ClasseInterna();
        interna.stampaMessaggio();
    }
}