Método constructor
Parte de la sección Programación Orientada a Objetos del Journey de Java de Coddy — lección 7 de 87.
Un constructor es un método especial que se ejecuta automáticamente cuando creas un objeto con new. Tiene el mismo nombre que la clase y no tiene tipo de retorno.
Constructor básico
public class Book {
private String title;
private String author;
public Book(String title, String author) {
this.title = title;
this.author = author;
}
}Constructor por defecto (sin parámetros)
public class Book {
private String title;
public Book() {
this.title = "Unknown";
}
}El constructor inicializa el estado del objeto
Book book = new Book("1984", "Orwell");
// El constructor se ejecuta inmediatamente, los campos se establecenSi no escribes un constructor, Java proporciona uno vacío por defecto. Una vez que escribes cualquier constructor, el que viene por defecto ya no se proporciona automáticamente.
Desafío
IntermedioCrea una clase Book con un constructor que inicialice todos los campos:
- Campos privados:
title,author(String),pages(int) - Un constructor que reciba los tres valores y los asigne usando
this - Métodos getter para cada campo
- Un método
getSummary()que devuelva"<title> by <author> (<pages> pages)"
Hoja de referencia
Un constructor es un método especial que se ejecuta automáticamente cuando creas un objeto con new. Tiene el mismo nombre que la clase y no tiene tipo de retorno.
Constructor básico:
public class Book {
private String title;
private String author;
public Book(String title, String author) {
this.title = title;
this.author = author;
}
}Constructor por defecto (sin parámetros):
public class Book {
private String title;
public Book() {
this.title = "Unknown";
}
}Usar un constructor para crear un objeto:
Book book = new Book("1984", "Orwell");
// El constructor se ejecuta inmediatamente, los campos se establecenSi no escribes un constructor, Java proporciona uno vacío por defecto. Una vez que escribes cualquier constructor, el predeterminado ya no se proporciona automáticamente.
Pruébalo tú mismo
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String title = scanner.nextLine();
String author = scanner.nextLine();
int pages = Integer.parseInt(scanner.nextLine());
Book book = new Book(title, author, pages);
System.out.println("Title: " + book.getTitle());
System.out.println("Author: " + book.getAuthor());
System.out.println("Pages: " + book.getPages());
System.out.println(book.getSummary());
}
}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
1Fundamentos de OOP
Archivos externosIntroducción a la OOPClases vs. ObjetosLa palabra clave thisMétodosCampos (Atributos)Método constructorSobrecarga de constructoresResumen - Calculadora simple4Herencia
Herencia básica (extends)La palabra clave superSobrescritura de métodos (@Override)Encadenamiento de constructoresLa clase ObjectHerencia simple y multinivelPor qué no hay herencia múltiple de clasesResumen - Jerarquía de empleados7Métodos especiales y la clase Object
Método toString()equals() y hashCode()Método clone()compareTo() y ComparableInterfaz ComparatorResumen - Ordenamiento personalizado2Modificadores de acceso y encapsulamiento
Visión general de los niveles de accesoMétodos Getter y SetterOcultamiento de informaciónLa palabra clave finalResumen - Gestor de cuentas bancarias5Polimorfismo
Fundamentos de sobrecarga de métodosSobrescritura de métodos (tiempo de ejecución)Upcasting y DowncastingEl operador instanceofClases y métodos abstractosResumen - Calculadora de figuras8Conceptos avanzados de POO
Composición vs. HerenciaAgregación vs. ComposiciónClases internas, anidadas y anónimasEnums y métodos de EnumRecords (Java 16+)Clases selladas (Java 17+)11Patrones de diseño - Parte 1
Introducción a los patrones de diseñoPatrón SingletonPatrón FactoryPatrón BuilderPatrón ObserverPatrón Strategy3Propiedades de clase y miembros estáticos
Variables de instancia vs. estáticasMétodos estáticosBloques estáticosConstantes (static final)Repaso - Contador y utilidad6Interfaces y Clases Abstractas
Introducción a las InterfacesImplementación de InterfacesImplementación de Múltiples InterfacesMétodos Default y Static en InterfacesClases Abstractas vs InterfacesInterfaces FuncionalesResumen - Sistema de Pagos9Genéricos
Introducción a los genéricosClases genéricasMétodos genéricosParámetros de tipo delimitadosComodines (?, extends, super)Resumen - Contenedor genérico12Patrones de diseño Parte 2
Patrón CommandPatrón AdapterPatrón DecoratorPatrón Template MethodPatrón StatePatrón CompositePatrón Iterator