Դաս 25։ Java –Encapsulation

0

Ինկապսուլացիան (Encapsulation-ն) OOP-ի (Օբյեկտ կողմնորոշված ծրագրավորում) չորս հիմնական հասկացություններից մեկն է։ Մյուս երեք են՝ ժառանգություն (inheritance), պոլիմորֆիզմ (polymorphism) և աբստրակցիա (abstraction)։

 

Java-ում ինկապսուլացիան տվյալների (փոփոխականների) փաթեթավորման և տվյալների վրա ազդող կոդի (մեթոդների) մեխանիզմ է: Ինկապսուլացիայում դասի փոփոխականները թաքնվում են այլ դասերից և կարող են հասանելի լինել միայն ընթացիկ դասի մեթոդների միջոցով: Այդ իսկ պատճառով այն հայտնի է նաև, որպես տվյալների թաքցնում՝ data hiding։

 

Java – ում էնկապսուլացիայի հասնելու համար, անհրաժեշտ է –

  • Դասի փոփոխականները սահմանել, որպես private
  • Տրամադրել հասանելի կարգավորչներ և մեթոդներ (public getters և setters) փոփոխականների արժեքները փոփոխելու և դիտելու համար

 

Օրինակ

Հետևյալ օրինակում ներկայացված է, թե ինչպես հասնել Encapsulation-ին Java – ում։

/* File name : EncapTest.java */

public class EncapTest {

   private String name;

   private String idNum;

   private int age;

 

   public int getAge() {

      return age;

   }

 

   public String getName() {

      return name;

   }

 

   public String getIdNum() {

      return idNum;

   }

 

   public void setAge( int newAge) {

      age = newAge;

   }

 

   public void setName(String newName) {

      name = newName;

   }

 

   public void setIdNum( String newId) {

      idNum = newId;

   }

}

 

setXXX () եւ getXXX () մեթոդները EncapTest դասի փոփոխականների հասնելու մուտքի կետեր են: Սովորաբար, այդ մեթոդները կոչվում են որպես getters և setters։ Հետեւաբար, ցանկացած դաս, որը ցանկանում է մուտք գործել դեպի փոփոխական, պետք իրականացնի դա այս մեթոդների միջոցով:

 

EncapTest դասի փոփոխականները մուտք գործելու համար կարող եք օգտվել հետևյալ ծրագրից `

/* File name : RunEncap.java */

public class RunEncap {   

public static void main(String args[]) {  

    EncapTest encap = new EncapTest();   

   encap.setName(“James”);     

encap.setAge(20);     

encap.setIdNum(“12343ms”);      

System.out.print(“Name : ” + encap.getName() + ” Age : ” + encap.getAge());  

}

}

 

Արդյունքը՝

Name : James Age : 20

 

Ինկապսուլյացիայի առավելությունները

  • Դասի դաշտերը կարող են հասանելի լինել, միայն որպես read-only կամ write-only։

Դասը կարող է ամբողջությամբ վերահսկել այն, թե ինչ է պահվում իր դաշտերում։

Հարգելի ընթերցող, խնդրում ենք չմոռանալ like տալ մեր ֆեյսբուքյան էջին, քանի որ նորությունների մեծ մասը առաջինը տեղադրվում է հենց այնտեղ։ Ինչպես նաև հետևեք մեզ այլ սոցիալական ցանցերում և, իհարկե, գրանցվեք մեր բլոգում։

Share.