encapsulation java
Lær om innkapsling i Java med eksempler, hvorfor vi trenger det, tilhørende getter- og settermetoder:
I denne veiledningen vil vi diskutere et annet OOP-konsept - 'Encapsulation'. OOP har fire søyler, nemlig abstraksjon, innkapsling, polymorfisme og arv.
Mens abstraksjon bare brukes til å eksponere relevante detaljer for sluttbrukeren, handler innkapsling hovedsakelig om datasikkerhet. For å sikre datasikkerhet beskytter innkapsling dataelementene mot uønsket tilgang ved å spesifisere tilgangsmodifikatorer og bunter også dataene i en enkelt enhet.
=> Ta en titt på den perfekte Java-treningsguiden her.
Så hvordan kan vi definere innkapsling i Java?
beste mobiltelefon spion apps for android
Definisjon av innkapsling
'Innkapsling i Java kan defineres som en mekanisme som bruker dataene og metodene som fungerer med disse dataene for å danne en enkelt enhet.'
Hva du vil lære:
Hva er innkapsling i Java
Ved hjelp av innkapsling kan vi også skjule klassedatamedlemmene (variabler) fra de andre klassene. Disse data-medlemsvariablene kan fås indirekte ved hjelp av metoder i klassen de blir deklarert i. Metodene i sin tur er tilgjengelige ved hjelp av objektet til den klassen.
Så det vi konkluderer med fra definisjonen ovenfor er at vi har skjult dataelementvariablene i en klasse og har også spesifisert tilgangsmodifikatorene slik at de ikke er tilgjengelige for de andre klassene.
Dermed er innkapsling også en slags 'datahulling', men senere i opplæringen vil vi se at innkapsling ikke er det samme som datahulling.
Ovenstående figur representerer en klasse som er en innkapslingsenhet som samler dataene og metodene som fungerer på disse dataene i en enkelt enhet.
Ettersom innkapsling hovedsakelig omhandler data, kalles det alternativt “Datainnkapsling”.
Vi kan visualisere innkapsling som en medisinsk kapsel. Som vi alle vet er medisinen lukket i en medisinsk kapsel. Tilsvarende er data og metoder innkapslet i en enkelt enhet i innkapsling.
Dermed fungerer innkapsling som et beskyttende skjold rundt dataene og forhindrer dataene fra uautorisert tilgang fra omverdenen. Med andre ord beskytter den sensitive data i applikasjonen vår.
I Java er det to trinn for å implementere innkapsling. Følgende er trinnene:
- Bruk tilgangsmodifisereren ‘privat’ til å erklære variablene i klassemedlemmene.
- For å få tilgang til disse private medlemsvariablene og endre verdiene deres, må vi oppgi henholdsvis de offentlige getter- og settermetodene.
La oss nå implementere eksemplet på innkapsling i Java.
Java Encapsulation Eksempel
//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()); } }
Produksjon:
I programmet ovenfor erklærer vi en klasse som er innkapslingsenheten. Denne klassen Student har samlet dataene (Student_Id og navn) og metodene for å lese og sette verdier for disse medlemmene i en enkelt enhet.
Legg merke til tilgangsmodifikatorene knyttet til medlemsfeltene. Begge medlemsfeltene er private slik at de ikke er tilgjengelige utenfor studentklassen.
Vi tilbyr getters (getId og getname) for å lese verdiene til disse feltene og settermetoder (setId og setname) for å sette verdier for disse metodene. Dette er den eneste tilgangen de har, og det bør også gjøres ved hjelp av studentklasseobjektet.
Getter Og Setter Metoder
For å implementere innkapsling i Java, gjør vi data-medlemsvariablene i klassen som private. Nå er disse private variablene ikke tilgjengelige for noe utenfor klassen, inkludert klasseobjektet.
Dette betyr at hvis vi har en klasse ABC som følger.
klasse ABC {
privat alder;
feilreparasjonsverktøy for Windows 10
}
La oss lage et objekt i klasse ABC som følger:
ABC abc = ny ABC ();
abc.age = 21; // kompilatorfeil
Så i koden ovenfor vil tilgang til den private variabelen ved hjelp av klasseobjektet resultere i en kompilatorfeil.
For å få tilgang til de private variablene og lese verdiene deres og sette noen nye verdier i dem, trenger vi noen måte å gjøre dette på. Dermed gir Java en måte å få tilgang til private variabler ved hjelp av getter- og setter-metoder.
Getter og Setters er offentlige metoder som vi kan bruke til å opprette, endre, slette eller bare vise verdiene til de private variablene.
Programmet nedenfor 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()); } }
Produksjon:
Ovennevnte program har en klassekonto og det har fire private variabler knyttet til kontoen. Siden alle datamedlemmene er private, har vi gitt getter- og settermetodene for hver av disse variablene.
hvordan legge maven til formørkelse
I hovedmetoden leser og setter vi verdier for disse private variablene ved hjelp av de offentlige getter- og settermetodene som er tilgjengelige gjennom objektet til klassen Account.
Data gjemmer seg i Java
Ofte bruker vi innkapsling og skjuling av data om hverandre. Men begge er ikke det samme. Java-innkapsling omhandler gruppering av relaterte data i en enkelt enhet for å sikre bedre styring og sikkerhet for data.
Data som skjuler seg derimot begrenser tilgangen til datamedlemmet ved å skjule implementeringsdetaljene. Selv om innkapsling ikke akkurat skjuler seg, gir det oss måten å skjule oss på. Datahulling oppnås ved hjelp av tilgangsmodifikatorer.
Java har fire tilgangsmodifikatorer.
- offentlig: Tilgjengelig for alle.
- privat: Bare tilgjengelig i klassen.
- beskyttet: Tilgjengelig med pakken som inneholder og underklassene.
- misligholde: Tilgjengelig i pakken.
Innkapsling samler dataene i en enkelt enhet, så på en måte skjuler det dataene. Det gjør også dataene private og dermed utilgjengelige for omverdenen. For å gjøre dataene private, bruker vi tilgangsmodifikatoren privat som er et dataskjulningskonsept.
Samtidig blir bare de relevante detaljene gitt til sluttbrukeren uten å avsløre implementeringsdetaljene som er en definisjon av abstraksjon. Dermed kan vi se på innkapsling som en kombinasjon av abstraksjon og dataskjuling.
Hvorfor trenger vi innkapsling
Det er forskjellige grunner til at innkapsling er viktig i Java:
- Innkapsling lar oss endre koden eller en del av koden uten å måtte endre noen andre funksjoner eller kode.
- Innkapsling styrer hvordan vi får tilgang til data.
- Vi kan endre koden basert på kravene ved hjelp av innkapsling.
- Innkapsling gjør applikasjonene våre enklere.
ofte stilte spørsmål
Q # 1) Hvorfor brukes innkapsling i Java?
Svar: Innkapsling i Java er mest nyttig for å skjule dataene. Eller med andre ord, å bestemme om tilgangen til data om hvem som kan få tilgang til dem, og hvem som ikke kan.
Q # 2) Hva er innkapsling i OOP?
Svar: Innkapsling er en av de viktigste søylene i Objektorientert programmeringsspråk, og det handler om samling av data og metoder som fungerer på disse dataene i en enkelt enhet. For eksempel, en klasse i Java er en innkapslet struktur. Innkapsling handler også om avgjørelser angående tilgang til data.
Q # 3) Hva er fordelen med innkapsling i Java?
Svar: Den største fordelen med innkapsling i Java er skjuling av data. Ved hjelp av innkapsling kan vi la programmereren bestemme om tilgang til data og metoder som fungerer på disse dataene. For eksempel, hvis vi vil at en bestemt del data skal være utilgjengelig for alle utenfor klassen, så gjør vi dataene private.
Q # 4) Hva er innkapslingsprosessen?
Svar: Innkapsling er en prosess med å plukke opp data fra ett format eller en protokoll (i nettverksbetingelser) og oversette eller omformatere det til et annet format eller en annen protokoll slik at dataene er tilgjengelige på tvers av applikasjonene eller nettverket og samtidig er beskyttet.
Sp # 5) Hva er det siste trinnet i innkapsling av data?
Svar: Det siste trinnet i innkapsling er å endre brukerinformasjonen til ekvivalente data. Deretter blir disse dataene endret til segmenter som videre transformeres til datapakker. Datapakker plasseres i en logisk ramme som kan overføres frem og tilbake i programvaremiljøet
Konklusjon
Dette avslutter opplæringen vår om innkapsling i Java. Innkapsling er en teknikk for å samle opp medlemsvariabler og metodene som fungerer på disse dataelementene i en enkelt enhet. En klasse i Java er et klassisk eksempel på innkapsling, da den bryter dataene og metodene inn i en enkelt enhet.
Java oppnår innkapslingsimplementering ved å gjøre alle datamedlemmene private og deretter gi getter- og settermetoder som er offentlige, slik at vi kan lese verdiene til de private variablene og sette nye verdier for disse variablene.
=> Besøk her for den eksklusive opplæringsserien for Java Training.
Anbefalt lesing
- JAVA-opplæring for nybegynnere: 100+ praktiske Java-videoveiledninger
- TreeMap In Java - Veiledning med Java TreeMap-eksempler
- Java Double - Veiledning med programmeringseksempler
- Java Float Tutorial med programmeringseksempler
- Java omvendt streng: opplæring med programmeringseksempler
- Java Enum: Opplæring i Java-oppregning med eksempler
- Java Integer og Java BigInteger Class med eksempler
- Java String inneholder () Metodeopplæring med eksempler