Капсулиране в Java - Как да овладеете ООП с капсулиране?



Тази статия за капсулиране в Java ще ви помогне да разберете основните концепции за скриване на подробности за изпълнението заедно с различни прости примери.

Обектно-ориентираното програмиране или по-известно като OOP е един от основните стълбове на Java, който използва мощта и лекотата на използване. За да станете професионален разработчик на Java, трябва да получите безупречен контрол върху различните като , Абстракция , Капсулиране и полиморфизъм. Посредством тази статия ще ви дам пълна представа за една от най-важните концепции на ООП, т.е. капсулирането в Java и как се постига.

По-долу са темите, които ще обсъждам в тази статия:





Можете също така да преминете през този запис на където можете да разберете темите подробно с примери.



Въведение в капсулирането

Капсулирането се отнася до опаковане на данни в една единица. Механизмът е този, който обвързва кода и данните, които той манипулира. Друг начин да се мисли за капсулиране е, че това е защитен щит, който предотвратява достъпа до данните от кода извън този щит. В това променливите или данните на a е скрит от всеки друг клас и може да бъде достъпен само чрез която и да е функция на член на собствен клас, в който са декларирани.

Сега, нека вземем примера на медицинска капсула, където лекарството винаги е безопасно в капсулата. По същия начин, чрез капсулиране, методите и променливите на даден клас са добре скрити и безопасни.



Капсулиране -Инкапсулиране в Java-EdurekaКапсулирането в Java може да се постигне чрез:

  • Обявяване на променливите на клас като частни.
  • Предоставяне на публични методи за задаване и получаване за промяна и преглед на стойностите на променливите.

Сега, нека разгледаме кода, за да разберем по-добре капсулирането:

публичен клас Student {private String name public String getName () {return name} public void setName (String name) {this.name = name}} class Тест {public static void main (String [] args) {Student s = new Student () s.setName ('Хари Потър') System.out.println (s.getName ())}}

Както можете да видите в горния код, създадох клас Student, който има частен име . След това създадох getter и setter, за да получа и задам името на студент. С помощта на тези методи всеки клас, който желае да получи достъп до променливата на име, трябва да го направи, като използва тези методи за получаване и задаване.

Сега нека да видим още един пример и да разберем капсулирането в дълбочина. В този пример класът Car има две полета - name и topSpeed. Тук и двете са декларирани като частни, което означава, че не могат да бъдат достъпни директно извън класа. Имаме някои getter и setter методи като getName, setName, setTopSpeed ​​и т.н., и те се декларират като публични. Тези методи са изложени на „външни лица“ и могат да се използват за промяна и извличане на данни от обекта Car. Имаме един метод за задаване на максималната скорост на автомобила и два метода за получаване, за да извлечем стойността на максималната скорост в MPH или KMHt. Така че основно това прави капсулирането - скрива изпълнението и ни дава стойностите, които искаме. Сега нека разгледаме кода по-долу.

пакет Edureka публичен клас Car {private String name private double topSpeed ​​public car () {} public String getName () {return name} public void setName (String name) {this.name = name} public void setTopSpeed ​​(double speedMPH) {topSpeed = speedMPH} публична двойна getTopSpeedMPH () {return topSpeed} публична двойна getTopSpeedKMH () {return topSpeed ​​* 1.609344}}

Тук основната програма създава обект Car с дадено име и използва метода на задаване, за да съхрани максималната скорост за този случай. По този начин можем лесно да получим скоростта в MPH или KMH, без да се интересуваме как скоростта се преобразува в класа Car.

пакет Edureka публичен клас Пример {public static void main (String args []) Car car = new Car () car.setName ('Mustang GT 4.8-liter V8') car.setTopSpeed ​​(201) System.out.println (car. getName () + 'максималната скорост в MPH е' + car.getTopSpeedMPH ()) System.out.println (car.getName () + 'максималната скорост в KMH е' + car.getTopSpeedKMH ())

Сo, по този начин може да се постигне капсулиране в Java. Сега, нека да продължим по-нататък и да видим защо се нуждаем от капсулиране.

Защо се нуждаем от капсулиране в Java?

Капсулирането е от съществено значение в Java, защото:

  • Той контролира начина на достъпност на данните
  • Променя кода въз основа на реквизитите
  • Помага ни да постигнем свободна двойка
  • Постига простота на нашето приложение
  • Също така ви позволява да промените частта от кода, без да нарушавате други функции или код, присъстващи в програмата

Сега, нека разгледаме един малък пример, който илюстрира необходимостта от капсулиране.

class Student {int id String name} публичен клас Demo {public static void main (String [] args) {Student s = new Student () s.id = 0 s.name = '' s.name = null}}

В горния пример той съдържа две променливи на екземпляра като модификатор на достъпа. Така че всеки клас в същия пакет може да присвоява и променя стойности на тези променливи чрез създаване на обект от този клас. По този начин нямаме контрол върху стойностите, съхранявани в класа Student като променливи. За да разрешим този проблем, ние капсулираме класа Student.

И така, това бяха малкото насоки, които изобразяват необходимостта от капсулиране. Сега, нека видим някои предимства на капсулирането.

is-a връзка java

Предимства на капсулирането

    • Скриване на данни: Тук потребителят няма представа за вътрешната реализация на класа. Дори потребителят няма да е наясно как класът съхранява стойности в променливите. Той / тя ще знае само, че предаваме стойностите на метод за задаване и променливите се инициализират с тази стойност.
    • Повишена гъвкавост: Тук можем да направим променливите на класа само за четене или само за запис, в зависимост от нашите изисквания. В случай, че искате да направите променливите само за четене, тогава трябва да пропуснем методите на задаване като setName (),setAge() и т.н. или ако искаме да направим променливите само за запис, тогава трябва да пропуснем методите get като getName (), getAge () и т.н. от горната програма.
    • Многократна употреба: Той също така подобрява повторната използваемост и е лесен за промяна с нови изисквания.

След като разбрахме основите на капсулирането, нека да се потопим в последната тема на тази статия и да разберем капсулирането в детайли с помощта на пример в реално време.

Пример за капсулиране в реално време

Нека разгледаме телевизионен пример и да разберем как вътрешните детайли за изпълнение са скрити от външния клас.По принцип в този пример ние крием данни от вътрешния код, т.е.схеми от външния свят от корицата. Сега в , това може да се постигне с помощта на модификатори за достъп. Модификаторите на достъп задават достъпа или нивото на клас, конструктори на променливи и т.н. Както можете да видите в кода по-долу, използвах модификатор за частен достъп, за да огранича нивото на достъп на класа. Променливите, декларирани като частни, са достъпни само в клас Телевизия.

публичен клас Телевизия {частна двойна ширина частна двойна височина частна двойна Screensize private int maxVolume print int volume private boolean power public Television (double width, double height, double screenSize) {this.width this.height this.screenSize = ScreenSize} public double channelTuning (int канал) {превключвател (канал) {случай1: връщане 34.56 случай2: връщане 54.89 случай3: връщане 73.89 случай1: връщане 94.98} връщане 0} публичен int намаляванеVolume () {ако (0 обем) обем ++ връщане обем}} тест клас {публичен статичен void main (String args []) {Телевизия t = нова телевизия (11,5,7,9) t.powerSwitch () t.channelTuning (2) t.decreaseVolume () t.increaseVolume () телевизия. // Изхвърля грешка като променлива е частна и не може да бъде достъпна извън класа}}

В горния пример декларирах всички променливи като частни, а методите, конструкторите и класа като публични. Тук конструкторите и методите могат да бъдат достъпни извън класа. Когато създавампредметот клас Television, той може да има достъп до методите и конструкторите, присъстващи в класа, докато променливите, декларирани с модификатор за частен достъп, са скрити. Ето защо, когато се опитате да осъществите достъп ширина променлива в горния пример хвърлягрешка. Ето как вътрешните подробности за изпълнение са скрити от останалите класове. Ето как се постига капсулиране в Java.

Това ни води до края на тази статия за „Капсулиране в Java“. Надявам се, че го намерихте информативен и той помогна за добавяне на стойност към вашите знания. Ако искате да научите повече за Java, можете да се обърнете към

След като разбрахте „какво е капсулиране в Java“, разгледайте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят. Курсът за обучение и сертифициране на Java J2EE и SOA на Edureka е предназначен за студенти и професионалисти, които искат да бъдат Java Developer. Курсът е предназначен да ви даде начален старт в програмирането на Java и да ви обучи както за основни, така и за разширени Java концепции, заедно с различни Java рамки като Hibernate & Spring.

Имате въпрос към нас? Моля, споменете го в раздела за коментари в този блог „Капсулиране в Java“ и ние ще се свържем с вас възможно най-скоро.