Java'da kapsul


JavaBaxılıb 33

Java-da kapsülləmə başqa bir şeydir OOP təmsil edən konsepsiya məlumatların gizlənməsi. Bu o deməkdir ki, dəyişənlər sinif daxilində əhatə olunur və digər siniflər onlara birbaşa daxil ola bilmir. Onlara yalnız ümumi sinif metodları ilə daxil ola bilərik. Bu şəkildə, vacib məlumatları gizlədə və dəyişikliklərini məhdudlaşdıra bilərik.

İnkapsulyasiyaya necə nail olmaq olar

Aşağıdakı yollarla javada kapsula nail ola bilərik.

  • Dəyişənləri elan edin xüsusi. Zəhmət olmasa müraciət edin giriş dəyişdiriciləri xüsusi modifikator haqqında daha çox məlumat əldə etmək. Xüsusi dəyişənlərə digər siniflərdən birbaşa daxil ola bilmirik.
  • Həyata keçirmək alıcıqurucu metodlar. Bunları dəyərləri oxumaq və yazmaq üçün istifadə edə bilərik.

Java'da kapsul

 

Java Encapsulation-in üstünlükləri

  • Xarici sinifin xüsusi sahələri dəyişdirməsinə icazə vermədən təhlükəsizlik təmin edir.
  • Yalnız oxumaq və ya yalnız yazmaq metodlarına sahib ola bilərik və bu səbəbdən digər siniflərə daxil olmaq üçün məhdudiyyətlər təqdim edə bilərik. Bu, bir sinifdə yalnız a varsa deməkdir almaq metod, yalnız dəyişənləri oxuya bilərik. Eynilə, yalnız bir təyin etmək yalnız dəyişəni təyin etmək üsulu.
  • Getter və setter üsulları ilə rahatlıq və təkrar istifadə imkanı verir.
  • Tətbiq detalları digər siniflər üçün görünmür.
  • Vahid testi üçün asandır

İndi bir nümunədən istifadə edərək java-dakı kapsul konsepsiyasını başa düşək.

Java Encapsulation nümunəsi

Aşağıdakı nümunədə 2 xüsusi dəyişən var ad, bölmə ci Müəllim sinif. Dəyişənlər xüsusi olduğu üçün onlara sinif xaricində daxil ola bilmərik. Bunun üçün metodlardan istifadə edirik getProfNamegetDeptName pname və dept dəyişənlərinin dəyərlərini almaq. Eynilə, metodlardan istifadə edirik setProfName setDeptName ad və id dəyişənlərinin dəyərlərini təyin etmək.

Artıq Kollecdən Professor obyektini istifadə edərək ictimai alıcı və təyinetmə metodlarından istifadə edərək dəyişənlərə daxil ola bilərik. Bu şəkildə kapsula nail ola bilərik.

class Professor {
  private String pname;
  private String dept;
  
  //Getter methods
  public String getProfName() {
    return pname;
  }
  
  public String getDeptName() {
    return dept;
  }
  
  //Setter methods
  public void setProfName(String name) {
    this.pname = name;
  }
  
  public void setDeptName(String dept) {
    this.dept = dept;
  }
}
public class College {

  public static void main(String[] args) {
    Professor p = new Professor();
    p.setProfName("Mohan");
    p.setDeptName("CSE");
    System.out.println("Professor Name: " + p.getProfName());
    System.out.println("Department: " + p.getDeptName());

  }

}
Professor Name: Mohan
Department: CSE

Kapsülləmə: Yalnız oxunur

Java-da kapsulanın üstünlüklərindən gördüyümüz kimi, xüsusi dəyişənlərin dəyərlərini oxumaq üçün yalnız getter metodlarından istifadə edə bilərik. Bu vəziyyətdə, dəyərlərimizi tələblərimizə uyğun olaraq təyin edə bilmərik, çünki heç bir tənzimləyici metod yazmamışıq.

Aşağıdakı yalnız oxunan kapsülləmə sinfi nümunəsində yalnız dəyişən dəyəri oxuya bilərik və onu təyin edə bilmərik. Hesab nömrəsi dəyərini oxumaq üçün yalnız getAccountNumber metodunu yazdıq.

class Account {
  private int accountnumber = 4567890;
  
  public int getAccountNumber() {
    return accountnumber;
  }
}
public class Bank {

  public static void main(String[] args) {
    Account a = new Account();
    System.out.println("Account number: " + a.getAccountNumber());

  }

}
Account number: 4567890

Kapsul: Yalnız yazmaq üçün

Aşağıdakı nümunədə yalnız bir setter metoduna sahibik, buna görə də yalnız yazmaq üçün sinif kapsülleme nümunəsidir. Burada yalnız dəyəri təyin edə bilərik və oxuya bilmirik. Bu, kapsulanın başqa bir üstünlüyüdür.

class Account {
  private int accountnumber;
  
  public void setAccountNumber(int accno) {
    this.accountnumber = accno;
  }
}
public class Bank {

  public static void main(String[] args) {
    Account a = new Account();
    a.setAccountNumber(123456);

  }

}

arayış

Şərh yaz

Translate »
1