encapsulation java
Lær om indkapsling i Java med eksempler, hvorfor vi har brug for det, tilknyttede getter- og settermetoder:
I denne vejledning vil vi diskutere et andet OOP-koncept - “Encapsulation”. OOP har fire søjler, nemlig abstraktion, indkapsling, polymorfisme og arv.
Mens abstraktion kun bruges til at udsætte de relevante detaljer for slutbrugeren, beskæftiger indkapsling sig hovedsageligt med datasikkerhed. For at sikre datasikkerhed beskytter indkapsling dataelementerne mod uønsket adgang ved at specificere adgangsmodifikatorer og bunter også dataene i en enkelt enhed.
=> Tjek den perfekte Java-træningsvejledning her.
Så hvordan kan vi definere indkapsling i Java?
Definition af indkapsling
'Indkapsling i Java kan defineres som en mekanisme, hvor dataene og metoderne, der arbejder på disse data, indpakkes til at danne en enkelt enhed.'
bedste mp3 downloader app til android
Hvad du vil lære:
Hvad er indkapsling i Java
Ved hjælp af indkapsling kan vi også skjule klassedatamedlemmerne (variabler) fra de andre klasser. Disse data-medlemsvariabler kan fås indirekte ved hjælp af metoder i den klasse, hvori de erklæres. Metoderne til gengæld tilgås ved hjælp af objektet fra den klasse.
Så hvad vi konkluderer fra ovenstående definition er, at vi har skjult dataelementvariablerne i en klasse og også har specificeret adgangsmodifikatorerne, så de ikke er tilgængelige for de andre klasser.
Således er indkapsling også en slags 'dataskydning', selvom vi senere i vejledningen vil se, at indkapsling ikke er det samme som dataskydning.
Ovenstående figur repræsenterer en klasse, der er en indkapslingsenhed, der samler dataene og metoderne, der fungerer på disse data, i en enkelt enhed.
Da indkapsling hovedsageligt beskæftiger sig med data, kaldes det alternativt “Data indkapsling”.
Vi kan visualisere indkapsling som en medicinsk kapsel. Som vi alle ved, er lægemidlet lukket inde i en medicinsk kapsel. Tilsvarende er data og metoder lukket i en enkelt enhed i indkapsling.
Således fungerer indkapsling som et beskyttende skjold omkring dataene og forhindrer data fra uautoriseret adgang fra omverdenen. Med andre ord beskytter den de følsomme data i vores applikation.
I Java er der to trin til implementering af indkapsling. Følgende er trinene:
- Brug adgangsmodifikatoren 'privat' til at erklære klassemedlemsvariablerne.
- For at få adgang til disse private medlemsvariabler og ændre deres værdier skal vi give henholdsvis de offentlige getter- og settermetoder.
Lad os nu implementere eksemplet med indkapsling i Java.
Eksempel på Java-indkapsling
//Student_Id and name bundled in a unit 'Student' => encapsulation class Student { private int Student_Id; private String name; //getters, setters for Student_Id and name fields. public int getId() { return Student_Id; } public void setId(int s_id) { this.Student_Id = s_id; } public String getname() { return name; } public void setname(String s_name) { this.name = s_name; } } class Main{ public static void main(String() args) { //create an object of Student class Student s=new Student(); //set fields values using setter methods s.setId (27); s.setname('Tom Lee'); //print values using getter methods System.out.println('Student Data:' + '
Student ID:' + s.getId() + ' Student Name:' + s.getname()); } }
Produktion:
I ovenstående program erklærer vi en klasse, der er indkapslingsenheden. Denne klasse Student har samlet dataene (Student_Id og navn) og metoderne til at læse og indstille værdier for disse medlemmer i en enkelt enhed.
Bemærk adgangsmodifikatorerne, der er knyttet til medlemsfelterne. Begge medlemsfelter er private, så de ikke er tilgængelige uden for elevklassen.
Vi leverer getters (getId og getname) til at læse værdierne i disse felter og settermetoder (setId og setname) for at indstille værdier til disse metoder. Dette er den eneste adgang, de har, og det skal også gøres ved hjælp af klasseklasseobjektet.
Getter og Setter Metoder
For at implementere indkapsling i Java gør vi klassens data-medlemsvariabler som private. Nu er disse private variabler ikke tilgængelige for noget uden for klassen inklusive klasseobjektet.
Dette betyder, at hvis vi har en klasse ABC som følger.
klasse ABC {
privat int alder
}
Lad os oprette et objekt af klasse ABC som følger:
agil scrum metodologi interview spørgsmål svar
ABC abc = ny ABC ();
abc-alder = 21; // kompilatorfejl
Så i ovenstående kode vil adgang til den private variabel ved hjælp af klasseobjektet resultere i en compiler-fejl.
For at få adgang til de private variabler og læse deres værdier og indstille nogle nye værdier i dem, har vi brug for en måde at gøre dette på. Java giver således en måde at få adgang til private variabler ved hjælp af getter- og setter-metoder.
Getter og Setters er offentlige metoder, som vi kan bruge til at oprette, ændre, slette eller blot se værdierne for de private variabler.
Nedenstående program er et eksempel på Getter- og Setter-metoder.
//Account class - private data members bundled with getters and setters class Account { //private data members private long acc_no; private String name,email; private float amount; //public getter and setter methods for each data member public long getAcc_no() { return acc_no; } public void setAcc_no(long acc_no) { this.acc_no = acc_no; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public float getAmount() { return amount; } public void setAmount(float amount) { this.amount = amount; } } public class Main { public static void main(String() args) { //create instance of Account class Account myAcc=new Account(); //set values for data members through setter methods myAcc.setAcc_no(775492842L); myAcc.setName('SoftwareTestingHelp.com'); myAcc.setEmail('sth_account@sth.com'); myAcc.setAmount(25000f); //read data member values through getter methods System.out.println('Account No:' + myAcc.getAcc_no()+' '+'Account Name:' + myAcc.getName()+'
'+'Account holder email:' + myAcc.getEmail()+'
' + 'Amount in Account:' + myAcc.getAmount()); } }
Produktion:
Ovenstående program har en klassekonto, og det har fire private variabler, der er relateret til kontoen. Da alle datamedlemmer er private, har vi leveret getter- og settermetoderne til hver af disse variabler.
bedste anime-steder at se anime gratis
I hovedmetoden læser og indstiller vi værdier for disse private variabler ved hjælp af de offentlige getter- og settermetoder, der er adgang til gennem objektet til klassekontoen.
Data gemmer sig i Java
Ofte bruger vi indkapsling og data gemmer sig om hverandre. Men begge er ikke ens. Java-indkapsling beskæftiger sig med gruppering af relaterede data i en enkelt enhed for at sikre bedre styring og sikkerhed af data.
Data, der skjuler sig på den anden side begrænser adgangen til datamedlemmet ved at skjule implementeringsoplysningerne. Selvom indkapsling ikke ligefrem skjuler sig data, giver det os måde at skjule data på. Data skjulning opnås ved hjælp af adgangsmodifikatorer.
Java tilbyder fire adgangsmodifikatorer.
- offentlig: Tilgængelig for alle.
- privat: Kun tilgængelig inden for klassen.
- beskyttet: Tilgængelig til den indeholdende pakke og underklasserne.
- Standard: Tilgængelig i pakken.
Indkapsling bundter dataene i en enkelt enhed, så det skjuler på en måde dataene. Det gør også dataene private og dermed utilgængelige for omverdenen. Til at gøre dataene private bruger vi adgangsmodifikatoren privat, som er et dataskydningskoncept.
Samtidig leveres kun de relevante detaljer til slutbrugeren uden at udsætte implementeringsoplysningerne, som er en definition af abstraktion. Således kan vi se indkapsling som en kombination af abstraktion såvel som dataskydning.
Hvorfor har vi brug for indkapsling
Der er forskellige grunde til, hvorfor indkapsling er vigtig i Java:
- Indkapsling giver os mulighed for at ændre koden eller en del af koden uden at skulle ændre andre funktioner eller kode.
- Indkapsling styrer, hvordan vi får adgang til data.
- Vi kan ændre koden baseret på kravene ved hjælp af indkapsling.
- Indkapsling gør vores applikationer enklere.
Ofte stillede spørgsmål
Q # 1) Hvorfor bruges indkapsling i Java?
Svar: Indkapsling i Java er mest nyttigt til at skjule dataene. Eller med andre ord at beslutte om adgangen til data med hensyn til, hvem der kan få adgang til dem, og hvem der ikke kan.
Q # 2) Hvad er indkapsling i OOP?
Svar: Indkapsling er en af de vigtige søjler i det objektorienterede programmeringssprog, og det handler om samling af data og metoder, der fungerer på disse data, i en enkelt enhed. For eksempel, en klasse i Java er en indkapslet struktur. Indkapsling beskæftiger sig også med beslutninger vedrørende adgang til data.
Q # 3) Hvad er fordelen ved indkapsling i Java?
Svar: Den største fordel ved indkapsling i Java er dataskydning. Ved hjælp af indkapsling kan vi give programmøren mulighed for at beslutte adgangen til data og metoder, der fungerer på disse data. For eksempel, hvis vi ønsker, at et bestemt stykke data skal være utilgængeligt for nogen uden for klassen, så gør vi disse data private.
Spørgsmål nr. 4) Hvad er indkapslingsprocessen?
Svar: Indkapsling er en proces til afhentning af data fra et format eller en protokol (i netværksbetingelser) og oversættelse eller omformatering til et andet format eller en anden protokol, så dataene er tilgængelige på tværs af applikationerne eller netværket, og samtidig er de beskyttet.
Spørgsmål nr. 5) Hvad er det sidste trin i datakapsling?
Svar: Det sidste trin i indkapsling er at ændre brugerinformation til ækvivalente data. Derefter ændres disse data i segmenter, der yderligere omdannes til datapakker. Datapakker placeres i en logisk ramme, der kan overføres frem og tilbage i softwaremiljøet
Konklusion
Dette afslutter vores tutorial om indkapsling i Java. Indkapsling er en teknik til samling af medlemsvariabler og metoderne, der fungerer på disse dataelementer i en enkelt enhed. En klasse i Java er et klassisk eksempel på indkapsling, da det indpakker data og metoder til en enkelt enhed.
Java opnår implementering af indkapsling ved at gøre alle datamedlemmer private og derefter give getter- og settermetoder, der er offentlige, så vi kan læse værdierne for de private variabler og indstille nye værdier for disse variabler.
=> Besøg her for den eksklusive Java-træningsvejledningsserie.
Anbefalet læsning
- JAVA-vejledning til begyndere: 100+ praktiske Java-videovejledninger
- TreeMap I Java - Vejledning med Java TreeMap-eksempler
- Java Double - Vejledning med programmeringseksempler
- Java Float Tutorial med programmeringseksempler
- Java Reverse String: Tutorial med programmeringseksempler
- Java Enum: Java-optællingsvejledning med eksempler
- Java-heltal og Java BigInteger-klasse med eksempler
- Java String indeholder () Metodevejledning med eksempler