Java birliyi


JavaBaxılıb 120

Sistem dizaynı ilə bağlı müsahibə sualları o qədər açıq ola bilər ki, düzgün hazırlaşmağı bilmək çox çətindir. İndi satın aldıqdan sonra Amazon, Microsoft və Adobe-nin dizayn dövrlərini sındıra bilirəm Bu kitabı. Gündəlik bir yenidən nəzərdən keçirin dizayn sualı və söz verirəm ki, dizayn dövrünü sındıra bilərsiniz.

Java birliyi nədir

Java-dakı birlik iki sinif arasındakı əlaqəni təsvir edir. Məqsədləri ilə əlaqələr qurur. Birlik birdən birə, birdən çoxa, çoxdan birə və ya çoxdan çoxa münasibətləri təmsil edə bilər. Bu imkan verir NƏ VAR siniflər arasındakı əlaqə.

Aşağıda bu assosiasiya münasibətlərinə dair müxtəlif nümunələrə baxaq.

  • Bir şəxs yalnız 1 sürücülük vəsiqəsinə sahib ola bilər. Bu, bir-bir əlaqəni göstərir.
  • Bir şəxsin bir çox bank hesabı ola bilər. Bu, birdən çoxa münasibətdir.
  • Bir çox işçinin tək bir hesabat meneceri ola bilər. Bu çox-bir əlaqəni təsvir edir.
  • Bir çox tələbə çox müəllimə sahib ola bilər. Bu çoxdan çoxa bir əlaqə göstərir.

Java'da assosiasiya illüstrasiyasını görməmişdən əvvəl bir anlayışa sahib olmaq vacibdir miras konsepsiya da.

Java'da Birliyin Nümunəsi

Bu nümunə, tək bir kafedrada çox müəllimin yerləşə biləcəyi bir-birinə münasibət göstərir. Hər sinif ayrı-ayrılıqda mövcud ola bilsə də, java ilə birləşərək hər iki sinfi də obyektləri ilə əlaqələndirə bilərik.

Biz yaradırıq Müəllim ehtiva edən sinif adlarıfənlər. Müəllimin adını və mövzusunu almaq üçün 2 metodumuz var. Konstruktor vasitəsilə ad və mövzunu müvafiq olaraq təyin edə bilərik.

In şöbə sinif elan edirik şöbə adımüəllimlərin siyahısı çünki bu, birdən çoxa münasibətlərin birliyidir. İnşaatçı vasitəsilə şöbə adını işə salırıq və getter metodundan istifadə edərək şöbə adını ala bilərik.

İndi müəllimlər siyahısını almaq və müəllimlər siyahısını təyin etmək üçün başqa 2 metodumuz olmalıdır. Bunun üçün yaradırıq GetTeachers() və setDepartament(müəllimlər).

Sonra, həm siniflər üçün ayrı nümunələr yaradırıq, həm də metodları buna uyğun çağırırıq. Istifadə olunur ArrayList müəllimlərin siyahısını yarada və sonra bu dəyişəni setDepartment-ə ötürə bilərik ki, müəllimləri tək bir şöbəyə bağlayaq.

import java.util.ArrayList;
import java.util.List;

class Teacher {
  String name;
  String subject;
  
  Teacher(String name, String subject) {
    this.name = name;
    this.subject = subject;
  }
  
  public String getTeacherName() {
    return name;
  }
  
  public String getSubject() {
    return subject;
  }
  
  public String toString() {
    return name;
  }
  
}
public class Department {
  
  String deptname;
  List<Teacher> teachers;
  
  Department(String name) {
    this.deptname = name;
  }
  
  public String getDepartmentName() {
    return deptname;
  }
  
  public List<Teacher> getTeachers() {
    return teachers;
  }
  
  public void setDepartment(List<Teacher> teachers) {
    this.teachers = teachers;
  }

  public static void main(String[] args) {
    Department d = new Department("Computer Science");
    
    Teacher t1 = new Teacher("Shyamala", "Data Structures");
    Teacher t2 = new Teacher("Mohan","Networking");
    
    List<Teacher> teachers = new ArrayList<Teacher>();
    teachers.add(t1);
    teachers.add(t2);
    
    d.setDepartment(teachers);
    
    System.out.println(d.getTeachers() + " are the list of teachers in the Department " + d.getDepartmentName());
    System.out.println("Teacher details: ");
    System.out.println(t1.getTeacherName() + " " + t1.getSubject());
    System.out.println(t2.getTeacherName() + " " + t2.getSubject());
  }

}
[Shyamala, Mohan] are the list of teachers in the Department Computer Science
Teacher details: 
Shyamala Data Structures
Mohan Networking

Artıq dərnək nə olduğuna dair bir fikrimiz var, gəlin javadakı müxtəlif birləşmə formalarını müzakirə edək.

Birliyin formaları

Dərnək aşağıda göstərildiyi kimi 2 fərqli formadan ibarətdir:

  • kompozisiya
  • Birləşmə

Java birliyiPin

kompozisiya

Kompozisiya a aiddir və ya hissəsidir dərnək növü. Başqa sözlə, deyə bilərik ki, bir obyekt başqa bir obyekt ehtiva edir və ya ibarətdir. Bu, güclü bir birləşmə növü tətbiq edir, yəni daxili obyekt əsas xarici obyekt məhv olarsa mövcud ola bilməz.

Məsələn, şagirdsiz bir məktəbimiz ola bilməz. Bu o deməkdir ki, məktəb şagirdlər olmadan mövcud ola bilməz. Buna görə məktəb və şagirdlər arasında bir kompozisiya qurur.

Başqa bir misal, mühərriki olmayan bir avtomobilimiz ola bilməz, yəni bir motor mühərriki olmadan hərəkət edə bilməz. Bu səbəbdən bu iki sinif bir-biri ilə sıx bağlıdır.

Kompozisiya xüsusiyyətləri

  • Hər iki sinif də bir-birindən çox asılıdır
  • 2 sinif arasındakı kompozisiya, hər iki varlığın bir-biri olmadan mövcud ola bilməməsi deməkdir.
  • Əlaqənin bir hissəsini həyata keçirir.
  • Məhdudlaşdırılmış birləşdirmə formasıdır.

Kompozisiya nümunəsi

Aşağıdakı nümunədə Tələbə və Məktəb arasındakı kompozisiyanı göstəririk. Bu o deməkdir ki, bir məktəb şagirdlərin siyahısını ehtiva edir və əgər məktəb dağıdılırsa, tələbə də mövcud deyil. Bunun səbəbi, məktəb konstruktorunda Student siyahısı obyektini parametr olaraq ötürməyimizdir

import java.util.ArrayList;
import java.util.List;

//Student class
class Student {
  String studentname;
  int rollno;
  
  Student(String studentname, int rollno) {
    this.studentname = studentname;
    this.rollno = rollno;
  }
}

//School class which contains students
class School {
  private final List<Student> students;
  
  School(List<Student> students) {
    this.students = students;
  }
  
  public List<Student> getTotalNumberOfStudents() {
    return students;
  }
  
}
public class CompositionDemo {

  public static void main(String[] args) {
    Student s1 = new Student("Akash",100);
    Student s2 = new Student("Avinash",101);
    Student s3 = new Student("Balu",102);
    
    //Create list of students
    List<Student> students = new ArrayList<Student>();
    students.add(s1);
    students.add(s2);
    students.add(s3);
    
    School s = new School(students);
    List<Student> stu = s.getTotalNumberOfStudents();
    for(Student student: stu) {
      System.out.println("Student Name: " + student.studentname + " | " + " Roll No: " + student.rollno );
    }

  }

}
Student Name: Akash |  Roll No: 100
Student Name: Avinash |  Roll No: 101
Student Name: Balu |  Roll No: 102

Birləşmə

Toplama eyni zamanda a. Həyata keçirən başqa bir Birlik formasıdır NƏ VAR münasibət və yalnız bir istiqamətli əlaqəni dəstəkləyir. Bu o deməkdir ki, bir sinif başqa bir sinifə istinad edir. Məsələn, bir insanın bir ünvanı olduğunu deyə bilərik. Tərs yol, yəni ünvanın bir insana sahib olması mənalı deyil. Buna görə başqa bir birləşmə forması olan tək tərəfli bir münasibət olduğunu söyləyirik.

Birləşmə nümunəsi

class Address {
  String flatname;
  int flatno;
  String streetname;
  String area;
  String city;
  int pincode;
  
  Address(String name, int no, String streetname, String area, String city, int pin) {
    this.flatname = name;
    this.flatno = no;
    this.streetname = streetname;
    this.area = area;
    this.city = city;
    this.pincode = pin;	
  }
  
}
public class Person {
  String name;
  Address ad;
  
  Person(String name, Address ad) {
    this.name = name;
    this.ad = ad;
  }

  public static void main(String[] args) {
    Address ad = new Address("OakMont",10,"Maruthi nagar","Banaswadi","Bangalore",560072);
    Person p = new Person("Ravi",ad);
    System.out.println("Person Name: " + p.name);
    System.out.println("Address: ");
    System.out.println(p.ad.flatno + ", " + p.ad.flatname + ", " + p.ad.streetname);
    System.out.println(p.ad.area);
    System.out.println(p.ad.city + " - " + p.ad.pincode);

  }

}
Person Name: Ravi
Address: 
10, OakMont, Maruthi nagar
Banaswadi
Bangalore - 560072

baxın Java-da birləşmə toplama konsepsiyası haqqında daha çox məlumat əldə etmək üçün təlimat.

Kompozisiya və aqreqasiya arasındakı fərq

Aşağıda java'da iki birləşmə forması arasındakı fərqlər var.

kompozisiyaBirləşmə
Güclü birlik növüZəif birlik növü
Münasibətlərin bir hissəsini və ya aidiyyətini həyata keçirirBir münasibət qurur
Hər iki sinif də bir-birindən asılıdır.
Uşaq sinfi ana sinfi olmadan mövcud ola bilməz
Uşaq sinfi, valideyn sinifi olmadan da müstəqil olaraq mövcud ola bilər

 

arayış

Crack Sistemi Dizayn Müsahibələri
Translate »
1