Java-da birləşmə


JavaBaxılıb 56

Java-da birləşmə, başqa bir sinif daxilində bir sinif üçün istinad təmin etməyimizə imkan verir. Başqa sözlə, a birxətli münasibət və həyata keçirir a NƏ VAR münasibət. Bu, əksinədir java miras IS-A əlaqəsini dəstəkləyən konsepsiya.

İki sinifin HAS-A əlaqəsi olduqda, məcmuəni həyata keçirdiyini söyləyirik. Düşünə biləcəyimiz ən yaxşı nümunə “İşçinin avtomobili var“. Bunun tək yönlü olduğunu deyirik, çünki bir avtomobilin işçisi ola bilməz və yalnız bir işçinin maşını ola bilər.

Bunu bir nümunə ilə başa düşməmişdən əvvəl nə üçün toplama istifadə etməli olduğumuza baxaq.

Javada toplanmanın istifadəsi

  • Kodun təkrar istifadəsini təmin edir
  • İstinad sinfinin metodlarına və dəyişənlərinə birbaşa daxil ola bilərik
  • Tətbiqlər NƏ VAR əlaqə

Birləşmə nümunəsi

Birləşdirmə konsepsiyasından istifadə edərək javada “İşçinin avtomobili var” nı necə tətbiq edə biləcəyimizi görək. 2 sinif yaradırıq Avtomobil və İşçi. Employee sinifində, bir obyekt yaradaraq Avtomobil sinfinə istinad yaradırıq. Beləliklə, bu avtomobil obyektindən istifadə edərək Avtomobil sinfinin bütün xüsusiyyətlərinə çata bilərik. Beləliklə, Employee sinfi birləşdirməni həyata keçirən Avtomobil sinfi ilə bir istiqamətli əlaqəyə malikdir.

Bu, şirkətin hansi işçinin nəqliyyat vasitəsinə keçiş təmin etmək üçün öz nəqliyyat vasitəsi ilə gəldiyini izləyə biləcəyi real vaxtda birləşdirmə nümunəsidir.

class Car {
  String carname;
  String color;
  String regno;
  
  Car(String carname, String color, String regno) {
    this.carname = carname;
    this.color = color;
    this.regno = regno;
  }
  
}
public class Employee {
  
  String empname;
  int empid;
  Car car;
  
  Employee(String empname, int empid, Car car) {
    this.empname = empname;
    this.empid = empid;
    this.car = car;
  }

  public static void main(String[] args) {
    Car car = new Car("Dezire","blue","KA 02 B 5544");
    Employee e = new Employee("Raj",456234,car);
    System.out.println("----------Employee Details:------------");
    System.out.println("Employee Name: " + e.empname);
    System.out.println("Employee ID: " + e.empid);
    System.out.println("----------Employee's car details-------");
    System.out.println("Car Name: " + e.car.carname);
    System.out.println("Car color: " + e.car.color);
    System.out.println("Car Reg No: " + e.car.regno);

  }

}
----------Employee Details:------------
Employee Name: Raj
Employee ID: 456234
----------Employee's car details-------
Car Name: Dezire
Car color: blue
Car Reg No: KA 02 B 5544

İşçinin həm avtomobil, həm də velosiped üçün qeydiyyatdan keçə biləcəyi vəziyyətlər ola bilər. Beləliklə, bu vəziyyətdə, "İşçinin Velosipedə sahib olduğu" başqa bir əlaqəmiz də ola bilər. Bu toplama tətbiqini java kodu ilə görək.

Java-da birləşməPin

Beləliklə, indi İşçi sinifində 2 müraciətimiz var, biri Avtomobil sinfinə, digəri Bike sinfinə. Beləliklə, tək bir sinif toplama konsepsiyasını həyata keçirən çoxsaylı siniflərlə tək istiqamətli bir əlaqə qura bilər.

class Car {
  String carname;
  String color;
  String regno;
  
  Car(String carname, String color, String regno) {
    this.carname = carname;
    this.color = color;
    this.regno = regno;
  }
  
}

class Bike {
  String bikename;
  String regno;
  
  Bike(String bikename, String regno) {
    this.bikename = bikename;
    this.regno = regno;
  }
}
public class Employee {
  
  String empname;
  int empid;
  Car car;
  Bike bike;
  
  Employee(String empname, int empid, Car car, Bike bike) {
    this.empname = empname;
    this.empid = empid;
    this.car = car;
    this.bike = bike;
  }

  public static void main(String[] args) {
    Car car = new Car("Dezire","blue","KA 02 B 5544");
    Bike bike = new Bike("Pulsar","KA 04 C 2233");
    Employee e = new Employee("Raj",456234,car,bike);
    System.out.println("----------Employee Details:------------");
    System.out.println("Employee Name: " + e.empname);
    System.out.println("Employee ID: " + e.empid);
    System.out.println("----------Employee's car details-------");
    System.out.println("Car Name: " + e.car.carname);
    System.out.println("Car color: " + e.car.color);
    System.out.println("Car Reg No: " + e.car.regno);
    System.out.println("----------Employee's bike details-------");
    System.out.println("Bike Name: " + e.bike.bikename);
    System.out.println("Bike Reg No: " + e.bike.regno);

  }

}
----------Employee Details:------------
Employee Name: Raj
Employee ID: 456234
----------Employee's car details-------
Car Name: Dezire
Car color: blue
Car Reg No: KA 02 B 5544
----------Employee's bike details-------
Bike Name: Pulsar
Bike Reg No: KA 04 C 2233

Eyni sinfi tək tərəfli əlaqəni təmin edən müxtəlif siniflər üçün istinad kimi istifadə edə biləcəyimiz başqa bir toplama nümunəsinə baxaq.

Aşağıdakı nümunədə, javada toplama istifadə edərək kodun təkrar istifadəsini nümayiş etdiririk. Bütün bu hallarda, İşçi, Tələbə və Müəllim siniflərində bu sinif haqqında məlumat verdiyimiz Bike sinifini yenidən istifadə edirik.

İşçinin velosipedi var

Bir tələbənin velosipedi var

Müəllimin velosipedi var

//Bike.java
class Bike {
  String bikename;
  String regno;
  
  Bike(String bikename, String regno) {
    this.bikename = bikename;
    this.regno = regno;
  }
}

//Employee.java
public class Employee {
  
  String empname;
  int empid;
  Car car;
  Bike bike;
  
  Employee(String empname, int empid, Car car, Bike bike) {
    this.empname = empname;
    this.empid = empid;
    this.car = car;
    this.bike = bike;
  }

  public static void main(String[] args) {
    Car car = new Car("Dezire","blue","KA 02 B 5544");
    Bike bike = new Bike("Pulsar","KA 04 C 2233");
    Employee e = new Employee("Raj",456234,car,bike);
    System.out.println("----------Employee Details:------------");
    System.out.println("Employee Name: " + e.empname);
    System.out.println("Employee ID: " + e.empid);
    System.out.println("----------Employee's car details-------");
    System.out.println("Car Name: " + e.car.carname);
    System.out.println("Car color: " + e.car.color);
    System.out.println("Car Reg No: " + e.car.regno);
    System.out.println("----------Employee's bike details-------");
    System.out.println("Bike Name: " + e.bike.bikename);
    System.out.println("Bike Reg No: " + e.bike.regno);

  }

//Student.java	
  class Student {
    String studentname;
    int rollno;
    Bike bike;
    
    Student(String name, int no, Bike bike) {
      this.studentname = name;
      this .rollno = no;
      this.bike = bike;
          
    }
    
    public static void main(String[] args) {
      //include code same as Employee class
    }
  }

//Teacher.java	
  class Teacher {
    String teachername;
    int id;
    Bike bike;
    
    Teacher(String name, int id, Bike bike){
      this.teachername = name;
      this.id = id;
      this.bike = bike;
    }
    
    public static void main(String[] args) {
      //include code same as Employee class
    }
  }

}

nəticə

Bu təlimatda HAS-A əlaqəsini həyata keçirmək üçün aqreqasiyanı müxtəlif yollarla necə istifadə edəcəyimizi öyrəndik.

arayış

Şərh yaz

Translate »
2