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 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:
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:
- La clase de automóvil tiene un par de variables de instancia y algunos métodos.
- 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.
- 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:"); } }
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