0Pricing
Java Academy · Lección

Composición de objetos

Construya objetos grandes combinando otros más pequeños. La composición modela relaciones has-a, como un Car que tiene un Engine.

Composición de objetos es una lección gratuita de Java Academy en CoddyKit. Esta es la lección 2 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Java Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Java Academy incluye 3 lecciones en total.

Definición

Composición significa construir un objeto más grande a partir de objetos más pequeños que posee. Es una relación has-a: un Car tiene un Engine. Esto mantiene las clases pequeñas y centradas, y permite que el objeto principal delegue el trabajo en sus partes.

Ventajas

La composición facilita la reutilización: puede sustituir una parte sin cambiar el conjunto. También mejora la facilidad de prueba, porque cada parte puede probarse por separado. Empiece de forma sencilla: haga que una clase dependa de otra mediante campos.

Composición frente a herencia

La herencia es una relación is-a (un Square es un Shape). La composición es una relación has-a (un Car tiene un Engine). Prefiera primero la composición y use la herencia solo cuando encaje de forma natural una relación is-a real.

Propiedad y ciclo de vida

Cuando un objeto posee sus partes, es responsable de crearlas y usarlas. Normalmente, las partes no existen por separado, sino porque existe el conjunto. Esta idea mantiene claras las responsabilidades.

Pasos de diseño

Elija el conjunto (Car) y las partes (Engine). Enumere qué conoce y qué hace cada parte. Después, coloque los objetos que representan las partes como campos dentro del conjunto y escriba métodos pequeños que usen esas partes para realizar el trabajo.

Código: ejemplo de has-a

Código: Car posee un Engine y llama a uno de sus métodos. Crear primero la parte y pasarla después mantiene el código sencillo y flexible.

public class Main {
  // Very small classes to show composition (has-a)
  static class Engine {
    int horsepower;
    Engine(int hp) { horsepower = hp; }
    String info() { return horsepower + " HP engine"; }
  }

  static class Car {
    String model;
    Engine engine; // Car has an Engine (composition)
    Car(String m, Engine e) {
      model = m;
      engine = e; // store the part
    }
    void printSpecs() {
      // Use the part to build a message
      System.out.println(model + " with " + engine.info());
    }
  }

  public static void main(String[] args) {
    // Create part first
    Engine e = new Engine(90);
    // Assemble whole with the part
    Car c = new Car("CityCar", e);
    // Use the whole, which delegates to its part
    c.printSpecs();
  }
}

Comprobación de la composición

Comprobación rápida: ¿Qué afirmación describe mejor la composición?

Repaso

Repaso: la composición modela una relación has-a. Empiece con una parte pequeña, asígnele una tarea clara y permita que el objeto principal la use mediante llamadas a métodos sencillos.

Preguntas frecuentes

¿La lección «Composición de objetos» es gratis?

Sí — el texto completo de «Composición de objetos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Java Academy, actualiza a CoddyKit PRO. El curso de Java Academy incluye 3 lecciones en total.

¿Qué aprenderé en «Composición de objetos»?

Construya objetos grandes combinando otros más pequeños. La composición modela relaciones has-a, como un Car que tiene un Engine. Practicas Java Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Java Academy?

No se requiere experiencia previa. Java Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 3.

¿Cuánto tiempo toma la lección «Composición de objetos»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Java Academy?

Sí. Cada lección de Java Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. this y toString/equals/hashCode
  2. Composición de objetos
  3. Modelado de un dominio (UML→código)
← Volver a Java Academy