Menu
Coddy logo textTech

Constantes (static final)

Parte de la sección Programación Orientada a Objetos del Journey de Java de Coddy. Lección 18 de 87.

Combinar static y final crea una constante - un valor que pertenece a la clase y nunca puede cambiar. Esta es la forma estándar de definir constantes en 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";
}

Por convención, los nombres de las constantes usan UPPER_SNAKE_CASE para distinguirlas de las variables normales. Como ambas son static y final, accedes a ellas a través del nombre de la clase y sus valores tienen garantizado que nunca cambiarán:

System.out.println(GameSettings.MAX_PLAYERS);  // 4
// GameSettings.MAX_PLAYERS = 8;  // ¡Error! No se puede modificar

Las constantes normalmente se declaran public porque están pensadas para compartirse en toda tu aplicación. Piensa en valores como Math.PI: es una constante pública, estática y final que cualquier código puede utilizar.

¿Por qué usar constantes en lugar de valores codificados directamente? Si escribes 4 en todo tu código y luego necesitas cambiarlo a 6, tendrías que buscar y actualizar cada ocurrencia. Con una constante como MAX_PLAYERS, lo cambias en un solo lugar.

Las constantes también hacen que el código sea más legible - MAX_PLAYERS es más claro que un misterioso 4.

challenge icon

Desafío

Fácil

Construye una utilidad MathConstants que almacene valores matemáticos importantes como constantes, junto con un CircleCalculator que use esas constantes para realizar cálculos.

Crearás dos archivos para organizar tu código:

  • MathConstants.java: Crea una clase que contenga constantes matemáticas usando campos public static final:
    • PI con el valor 3.14159
    • E (el número de Euler) con el valor 2.71828
    • GOLDEN_RATIO con el valor 1.61803
    ¡Recuerda usar UPPER_SNAKE_CASE para los nombres de las constantes!
  • Main.java: Usa tus constantes para realizar cálculos relacionados con un círculo. Recibirás un radio como entrada e imprimirás tres líneas:
    • El área del círculo: Area: [value]
    • La circunferencia del círculo: Circumference: [value]
    • El diámetro escalado por la proporción áurea: Golden Diameter: [value]

Para los cálculos:

  • Área = PI * radio * radio
  • Circunferencia = 2 * PI * radio
  • Diámetro áureo = 2 * radio * GOLDEN_RATIO

Recibirás una entrada: el radio (double).

Da formato a todos los valores de salida con 2 decimales usando String.format("%.2f", value). Accede a tus constantes mediante el nombre de la clase, como MathConstants.PI.

Pruébalo tú mismo

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double radius = scanner.nextDouble();
        
        // TODO: Calcular el área usando MathConstants.PI
        // Fórmula: PI * radio * radio
        
        // TODO: Calcular la circunferencia usando MathConstants.PI
        // Fórmula: 2 * PI * radio
        
        // TODO: Calcular el diámetro de oro usando MathConstants.GOLDEN_RATIO
        // Fórmula: 2 * radio * GOLDEN_RATIO
        
        // TODO: Imprimir los resultados con formato de 2 decimales
        // Usar String.format("%.2f", value) para el formato
        // Formato de salida:
        // Area: [value]
        // Circumference: [value]
        // Golden Diameter: [value]
        
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Programación Orientada a Objetos

Practica por tu cuenta: Compilador de Java online