constructor Java

Constructor Java: inicializar un objeto con datos válidos

Distingue constructor, método y constructor por defecto con un ejemplo de Libro y sobrecarga.

Tipo: Guía práctica Lectura: 3 min Actualizado: 2026-11-03
Ejemplo visual para Constructor en Java: inicializar objetos con criterio

Guía y comprobaciones

Mismo nombre, sin tipo de retorno

Un constructor participa en la creación de una instancia. Tiene el nombre de la clase y no declara tipo de retorno, ni siquiera void. Si escribes void Libro(...), has declarado un método ordinario, no un constructor.

Ejemplo completo en Ejemplo.java:

class Libro {
    private final String titulo;
    private final int paginas;
    Libro(String titulo, int paginas) {
        if (titulo == null || titulo.isBlank() || paginas <= 0) {
            throw new IllegalArgumentException("Datos del libro no válidos");
        }
        this.titulo = titulo;
        this.paginas = paginas;
    }
    Libro(String titulo) {
        this(titulo, 100);
    }
    String resumen() { return titulo + ": " + paginas; }
}
public class Ejemplo {
    public static void main(String[] args) {
        Libro libro = new Libro("Cuaderno", 80);
        System.out.println(libro.resumen()); // Cuaderno: 80
    }
}

El uso de String.isBlank requiere Java 11 o posterior. El valor 100 de la sobrecarga es una decisión del ejemplo, no una propiedad que deba tener cualquier libro.

this y validación

this.titulo es el campo de la instancia; titulo es el parámetro. Escribir nombres iguales no los convierte en la misma variable. La validación evita que el objeto nazca con un título ausente o una cantidad imposible de páginas.

Los campos final del ejemplo se asignan durante la construcción y no se vuelven a reasignar. Esa propiedad no vuelve inmutable cualquier objeto automáticamente: si un campo final contiene una lista modificable, su contenido puede seguir cambiando.

Constructor sin argumentos

En una clase ordinaria, si no declaras constructores, el compilador puede proporcionar uno por defecto. Cuando declaras uno con parámetros, no se añade automáticamente otro sin parámetros. Por eso new Libro() no compila en este ejemplo.

Una clase hija debe cumplir también la construcción de su clase base. Antes de añadir herencia sólo para reutilizar un constructor, revisa si la relación expresa realmente «es un». Para reunir varios objetos sin esa relación, la composición suele ser más directa.

Prueba una creación válida y una inválida

Comprueba un título normal, uno en blanco y páginas cero. Un fallo controlado al construir es más fácil de localizar que una excepción lejana cuando otro método intenta utilizar datos incompletos.

Preguntas frecuentes

¿Un constructor devuelve void?

No declara ningún tipo de retorno. Añadir void lo convertiría en un método con el mismo nombre.

¿Puedo tener varios constructores?

Sí, con listas de parámetros distintas. Una sobrecarga puede delegar en otra para centralizar la validación.

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.