crear clase Java

Crear una clase Java: estado privado y operaciones claras

Define una clase Contador, controla sus invariantes y distingue un atributo de instancia de uno estático.

Tipo: Guía práctica Lectura: 3 min Actualizado: 2026-11-03
Ejemplo visual para Cómo crear una clase en Java sin mezclar responsabilidades

Guía y comprobaciones

Define qué representa una instancia

Una clase reúne datos y operaciones relacionados. Para un contador que nunca debe ser negativo, no basta con declarar un campo público: cualquier parte del programa podría asignarle -5. Un campo privado permite controlar los cambios mediante métodos.

Archivo Contador.java:

public class Contador {
    private int valor;
    public Contador(int inicial) {
        if (inicial < 0) throw new IllegalArgumentException("Inicial negativo");
        valor = inicial;
    }
    public void incrementar() {
        valor = Math.addExact(valor, 1);
    }
    public int getValor() {
        return valor;
    }
}

El constructor establece el estado inicial. incrementar usa Math.addExact para que un desbordamiento no convierta silenciosamente un entero máximo en uno negativo.

Usar la clase desde otra

Archivo Ejemplo.java en el mismo directorio, sin declaración de paquete:

public class Ejemplo {
    public static void main(String[] args) {
        Contador primero = new Contador(2);
        Contador segundo = new Contador(0);
        primero.incrementar();
        System.out.println(primero.getValor()); // 3
        System.out.println(segundo.getValor()); // 0
    }
}

Compila ambos archivos con un JDK compatible: javac Contador.java Ejemplo.java, y ejecuta java Ejemplo. El nombre del archivo debe coincidir con el de su clase pública. Si añades un paquete, también cambian la ubicación y la forma de lanzar el programa.

Instancia y static

Cada objeto tiene su propio valor. Si convirtieras el campo en static, lo compartirían todas las instancias y el ejemplo dejaría de representar dos contadores independientes. Un método estático tampoco dispone automáticamente del objeto al que se refiere this.

No añadas un setter a todos los campos por costumbre. Una operación como incrementar comunica mejor una regla que permitir cualquier asignación. Cuando la clase crezca, revisa si sigue representando un solo concepto: almacenar un contador y enviar correos no son responsabilidades que necesiten mezclarse aquí.

Preguntas frecuentes

¿Tiene que coincidir el nombre del archivo?

Sí, para una clase pública de nivel superior como Contador, el archivo se llama Contador.java.

¿Por qué valor es private?

Para que los cambios pasen por operaciones que mantengan la regla de no negatividad y no se modifique desde cualquier otra clase.

Documentación oficial

Fuentes consultadas

Fuentes y referencias

Consulta referencias útiles para ampliar o contrastar esta guía.

R

Autora de la guia

Redacción de Línea de Código

Publicación independiente de programación y trámites digitales

Guías con ejemplos y referencias oficiales para aprender programación y preparar gestiones digitales. Las solicitudes se completan en el organismo responsable.

Actualizado: 2026-11-03 Politica editorial Correcciones

Por que confiar

Contrastamos fuentes oficiales, actualizamos piezas clave y priorizamos estructura, contexto y enlazado interno por encima del relleno.

Compartir

Guarda o comparte esta guia con el enlace limpio.