¿Qué es Has-A-Relation en Java?

La asociación es la relación entre dos clases separadas que se establece a través de sus Objetos. La composición y la agregación son las dos formas de asociación. En Java, una relación Has-A también se denomina composición. También se utiliza para la reutilización de código en Java. En Java, una relación Has-A esencialmente implica que un ejemplo de una clase tiene una referencia a una ocasión de otra clase oa otra ocurrencia de una clase similar. Por ejemplo, un vehículo tiene un motor, un perro tiene una cola, etc. En Java, no existe tal consigna que ejecute una relación Has-A. Sin embargo, generalmente utilizamos nuevos eslóganes para actualizar una relación Has-A en Java.

Has-A-Relation-Java

Has-a es una forma especial de Asociación donde:

  • Representa la relación Has-A.
  • Es una asociación unidireccional, es decir, una relación unidireccional. Por ejemplo, aquí arriba, como se muestra, la motocicleta Pulsar tiene un motor, pero viceversa no es posible y, por lo tanto, es de naturaleza unidireccional.
  • En Agregación, ambas entradas pueden sobrevivir individualmente, lo que significa que terminar una entidad no afectará a la otra entidad.

Ilustración:

Has-A-Relation-Java-Example

Esto demuestra que la clase Pulsar tiene un motor. Al tener una clase diferente para el motor, no necesitamos poner todo el código que tiene un lugar con la velocidad dentro de la clase Van, lo que hace posible reutilizar la clase Speed ​​en numerosas aplicaciones.  

En un elemento Orientado a Objetos, los clientes no tienen que hacer un gran alboroto sobre qué artículo está realizando el trabajo real. Para lograr esto, la clase Van oculta las sutilezas de ejecución de los clientes de la clase Van. Por lo tanto, esencialmente lo que sucede es que los clientes le piden a la clase Van que realice una actividad específica y la clase Van realizará el trabajo sin la ayuda de nadie más o solicitará que otra clase realice la actividad.

Implementación: A continuación se muestra la implementación de la misma que es la siguiente: 

  1. La clase de automóvil tiene un par de variables de instancia y algunos métodos.
  2. Maserati es un tipo de automóvil que amplía la clase de automóviles que muestra que Maserati es un automóvil. Maserati también utiliza el método de un motor, la parada, utilizando la composición. Entonces se nota que un Maserati tiene Motor.
  3. La clase Engine tiene los dos métodos start() y stop() que utiliza la clase Maserati.

Ejemplo:

Java

// Java Program to Illustrate has-a relation
  
// Class1
// Parent class
public class Car {
  
    // Instance members of class Car
    private String color;
    private int maxSpeed;
  
    // Main driver method
    public static void main(String[] args)
    {
        // Creating an object of Car class
        Car nano = new Car();
  
        // Assigning car object color
        nano.setColor("RED");
  
        // Assigning car object speed
        nano.setMaxSpeed(329);
  
        // Calling carInfo() over object of Car class
        nano.carInfo();
  
        // Creating an object of Maserati class
        Maserati quattroporte = new Maserati();
  
        // Calling MaseratiStartDemo() over
        // object of Maserati class
        quattroporte.MaseratiStartDemo();
    }
  
    // Methods implementation
  
    // Method 1
    // To set the maximum speed of car
    public void setMaxSpeed(int maxSpeed)
    {
        // This keyword refers to current object itself
        this.maxSpeed = maxSpeed;
    }
  
    // Method 2
    // To set the color of car
    public void setColor(String color)
    {
        // This keyword refers to current object
        this.color = color;
    }
  
    // Method 3
    // To display car information
    public void carInfo()
    {
        // Print the car information - color and speed
        System.out.println("Car Color= " + color
                           + " Max Speed= " + maxSpeed);
    }
}
  
// Class2
// Child class
// Helper class
class Maserati extends Car {
  
    // Method in which it is shown
    // what happened with the engine of Puslar
    public void MaseratiStartDemo()
    {
        // Creating an object of Engine type
        // using stop() method
        // Here, MaseratiEngine is name of an object
        Engine MaseratiEngine = new Engine();
        MaseratiEngine.start();
        MaseratiEngine.stop();
    }
}
  
// Class 3
// Helper class
class Engine {
  
    // Method 1
    // To start a engine
    public void start()
    {
        // Print statement when engine starts
        System.out.println("Started:");
    }
  
    // Method 2
    // To stop a engine
    public void stop()
    {
        // Print statement when engine stops
        System.out.println("Stopped:");
    }
}
Producción

Car Color= RED Max Speed= 150
Started:
Stopped:

Publicación traducida automáticamente

Artículo escrito por swatidubey y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *