Увод о енкапсулацији на Јави

Инкапсулација је један од четири основна концепта програмског програмирања на Јави. Главна идеја која се крије иза тога је скривање детаља имплементације од корисника. Другим речима, енкапсулација је оматање података у једну јединицу како би се спречио приступ вањском свету. Пошто су подаци сакривени од осталих класа, овај поступак је такође познат и као скривање података. Размотримо рад сијалице као пример. Не знамо стварни рад иза сијалице чак и ако је користимо. Али у случају Јава енкапсулације, подацима је могуће приступити помоћу модификатора. Погледајмо то у следећем одељку.

Како функционира енкапсулација у јави?

Инкапсулација у Јава ради

  • Проглашавање атрибута или променљивих у класи као приватних

На пример, стварамо запосленог у класи. Променљиве варијабле морају бити приватне као што је приказано у наставку.

private String EmpName;
private int EmpID;
private int EmpSal;

  • Креирање јавних метода у класи како би се добили и поставили атрибути или променљиве.

Следи метода гет и метода постављања за различите приватне променљиве у класи Емплоиее.

Шифра:

public int getEmpSal()
(
return EmpSal;
)public String getEmpName()
(
return EmpName;
)
public int getEmpID()
(
return EmpID;
)
public void setEmpSal( int EmpSal)
(
this.EmpSal = EmpSal;
)
public void setEmpName(String EmpName)
(
this.EmpName = EmpName;
)
public void setEmpID( int EmpID)
(
this.EmpID = EmpID;
)

Помоћу ових метода могуће је направити класу само за писање или само за читање, тј. Можемо прескочити ове методе ако су потребне.

Следе неке од предности енкапсулације.

  • Једноставност у примени
  • Способност поновне употребе или измене кода на основу захтева
  • Ограничава приступачност података
  • Једноставност у тестирању јединице јер је код инкапсулиран

Јава Беан класа један је од примера за потпуно инкапсулирану класу јер су сви чланови података у класи приватни.

Примери Јава енкапсулације

Погледајмо пример енкапсулације и са геттер и са сеттер методама. За то створите 2 класе, једна са главном методом и друга са методама добијања и подешавања.

Пример 1

  • Емплоиее.јава

Шифра:

//Java program for Encapsulation with both read and write
public class Employee (
//private variables which can be accessed by public methods of the class
private String EmpName;
private int EmpID;
private int EmpSal;
// get method to access the private integer variable EmpSal
public int getEmpSal()
(
return EmpSal;
)
// get method to access the private string variable EmpName
public String getEmpName()
(
return EmpName;
)
// get method to access the private integer variable EmpID
public int getEmpID()
(
return EmpID;
)
// set method to access the private integer variable EmpSal
public void setEmpSal( int EmpSal)
(
this.EmpSal = EmpSal;
)
// set method to access the private string variable EmpName
public void setEmpName(String EmpName)
(
this.EmpName = EmpName;
)
// set method to access the private integer variable EmpID
public void setEmpID( int EmpID)
(
this.EmpID = EmpID;
)
)

  • ЕмплоиееЕнцапс.јава

Шифра:
public class EmployeeEncaps (
public static void main(String() args) (
Employee EmpObj= new Employee(); //object of the class Employee
//passing the values to the methods using object
EmpObj.setEmpName("Anna");
EmpObj.setEmpSal(30000);
EmpObj.setEmpID(670311);
// Printing values of the variables
System.out.println("Employee's Name: " + EmpObj.getEmpName());
System.out.println("Employee's ID: " + EmpObj.getEmpID());
System.out.println("Employee's Salary: " + EmpObj.getEmpSal());
)
)

Излаз:

У горњем програму, класа запосленика је инкапсулирана јер су променљиве приватне. Могуће је читати и писати имплементацију откако је добила и поставила методе. Приватним варијаблама као што су ЕмпНаме, ЕмпСал, ЕмпИД се приступа овим методама и приказују се позивањем метода помоћу објекта.

Сада, да видимо како Енкапсулација функционише са класом само за читање.

Пример 2

  • Емплоиее.јава

Шифра:

//Java program for Encapsulation with read permission
public class Employee (
//private variables which can be accessed by public methods of the class
private String EmpName = "Adam";
private int EmpID = 670388;
private int EmpSal = 35000;
// get method to access the private integer variable EmpSal
public int getEmpSal()
(return EmpSal;
)// get method to access the private string variable EmpName
public String getEmpName()
(
return EmpName;
)
// get method to access the private integer variable EmpID
public int getEmpID()
(
return EmpID;
)
)

  • ЕмплоиееЕнцапс.јава

Шифра:

public class EmployeeEncaps (
public static void main(String() args) (
Employee EmpObj= new Employee(); //object of the class Employee
// Printing values of the variables
System.out.println("Employee's Name: " + EmpObj.getEmpName());
System.out.println("Employee's ID: " + EmpObj.getEmpID());
System.out.println("Employee's Salary: " + EmpObj.getEmpSal());
)
)

Излаз:

Слично првом примјеру, и овдје користимо приватне варијабле. Разлика је у томе што ми не користимо сет метод да бисмо поставили вредности за приватне променљиве у класи. Уместо тога, вредност директно доделимо променљивим.

Сада можемо да пређемо на писање само класе.

Пример 3

  • Емплоиее.јава

Шифра:

//Java program for Encapsulation with write permission
public class Employee (
//private variables which can be accessed by public methods of the class
private String EmpName;
private int EmpID;
private int EmpSal;
// set method to access the private integer variable EmpSal
public void setEmpSal( int EmpSal)
(
this.EmpSal = EmpSal;
//for sample output
System.out.println("Employee's Salary: " + EmpSal);
)
// set method to access the private string variable EmpName
public void setEmpName(String EmpName)
(
this.EmpName = EmpName;
//for sample output
System.out.println("Employee's Name: " + EmpName);
)// set method to access the private integer variable EmpID
public void setEmpID( int EmpID)
(
this.EmpID = EmpID;
//for sample output
System.out.println("Employee's ID: " + EmpID);
)
)

  • ЕмплоиееЕнцапс.јава

Шифра:

public class EmployeeEncaps (
public static void main(String() args) (
Employee EmpObj = new Employee(); //object of the class Employee
//passing the values to the methods using object
EmpObj.setEmpName("Iza");
EmpObj.setEmpID(670472);
EmpObj.setEmpSal(48000);
)
)

Излаз:

У горњем примеру, не користимо метод гет за постизање класе само писања. тј. променљиве се овде не могу мењати нити дохватити. Како није могуће добити вредности, користимо испис унутар постављеног метода за излаз узорка.

Закључак

Инкапсулација је ООП концепт у који ће се савијати подаци сакривајући све детаље имплементације. То се може постићи приватним променљивим и методама попут добијања, подешавања приступа променљивим. Главне предности енкапсулације укључују флексибилност, скривање података, лакоћу тестирања и поновну употребу .

Препоручени чланци

Ово је водич за Инкапсулацију на Јави. Овде смо расправљали о томе како функционира енкапсулација, примери Јава енкапсулације са кодовима и излазом. Можете и да прођете кроз наше дате чланке да бисте сазнали више -

  1. Деструктор на Јави
  2. Изглед у Јави
  3. Најбољи Јава компајлери
  4. Водич за енкапсулацију у Ц ++
  5. Зашто нам је потребна капсулација на Ц?
  6. Преглед енкапсулације у ЈаваСцрипт-у

Категорија: