Menu
Coddy logo textTech

Costanti (static final)

Fa parte della sezione Programmazione orientata agli oggetti del percorso Java di Coddy. Lezione 18 di 87.

Combinare static e final crea una costante: un valore che appartiene alla classe e non può mai cambiare. Questo è il modo standard per definire le costanti in Java.

public class GameSettings {
    public static final int MAX_PLAYERS = 4;
    public static final double GRAVITY = 9.81;
    public static final String GAME_TITLE = "Space Adventure";
}

Per convenzione, i nomi delle costanti usano UPPER_SNAKE_CASE per distinguerle dalle variabili normali. Poiché sono sia statiche che final, vi accedi tramite il nome della classe e i loro valori sono garantiti per non cambiare mai:

System.out.println(GameSettings.MAX_PLAYERS);  // 4
// GameSettings.MAX_PLAYERS = 8;  // Errore! Impossibile modificare

Le costanti vengono in genere dichiarate public perché sono pensate per essere condivise all'interno della tua applicazione. Pensa a valori come Math.PI: è una costante pubblica, statica e finale che qualsiasi codice può usare.

Perché usare costanti invece di valori codificati direttamente? Se scrivi 4 in tutto il codice e in seguito devi modificarlo in 6, dovresti trovare e aggiornare ogni occorrenza. Con una costante come MAX_PLAYERS, la modifichi in un solo punto.

Le costanti rendono anche il codice più leggibile: MAX_PLAYERS è più chiaro di un misterioso 4.

challenge icon

Sfida

Facile

Creiamo un'utilità MathConstants che memorizza importanti valori matematici come costanti, insieme a un CircleCalculator che usa queste costanti per eseguire calcoli.

Creerai due file per organizzare il tuo codice:

  • MathConstants.java: crea una classe che contiene costanti matematiche usando campi public static final:
    • PI con valore 3.14159
    • E (numero di Eulero) con valore 2.71828
    • GOLDEN_RATIO con valore 1.61803
    Ricorda di usare UPPER_SNAKE_CASE per i nomi delle costanti!
  • Main.java: usa le tue costanti per eseguire calcoli relativi al cerchio. Riceverai un raggio come input e stamperai tre righe:
    • L'area del cerchio: Area: [value]
    • La circonferenza del cerchio: Circumference: [value]
    • Il diametro moltiplicato per il rapporto aureo: Golden Diameter: [value]

Per i calcoli:

  • Area = PI * radius * radius
  • Circumference = 2 * PI * radius
  • Golden Diameter = 2 * radius * GOLDEN_RATIO

Riceverai un input: il raggio (double).

Formatta tutti i valori di output con 2 cifre decimali usando String.format("%.2f", value). Accedi alle tue costanti tramite il nome della classe, come MathConstants.PI.

Provalo tu

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double radius = scanner.nextDouble();
        
        // TODO: Calcola l'area usando MathConstants.PI
        // Formula: PI * radius * radius
        
        // TODO: Calcola la circonferenza usando MathConstants.PI
        // Formula: 2 * PI * radius
        
        // TODO: Calcola il diametro aureo usando MathConstants.GOLDEN_RATIO
        // Formula: 2 * radius * GOLDEN_RATIO
        
        // TODO: Stampa i risultati formattati con 2 cifre decimali
        // Usa String.format("%.2f", value) per la formattazione
        // Formato dell'output:
        // Area: [value]
        // Circumference: [value]
        // Golden Diameter: [value]
        
    }
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore Java online