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();
}
}