Indholdsfortegnelse
I Objektorienteret programmering, objekter er abstrakte repræsentationer af elementer, som vi definerer gennem deres attributter, og som har en række metoder, der giver os mulighed for at manipulere og have adgang til disse attributter.eksisterer 3 funktioner der giver os grunden til at bruge vores egne objekter i stedet for afhængigt af de funktioner, biblioteker og globaler, som sproget stiller til rådighed for os, er disse:
- Polymorfisme: brug af de samme operationer på forskellige objekter af forskellige klasser.
- Indkapsling: skjule dets attributter for enheder uden for objektet, så det kan beskytte dem.
- Arv- Opret mere specifikke objekter, der arver de grundlæggende attributter og metoder fra en mere generel højere klasse.
Dette udtryk betyder, at det har mange former, det betyder, at vi kan udføre operationer, der fungerer forskelligt afhængigt af objektets type eller klasse. Lad os tage et simpelt eksempel, lad os forestille os, at vi har en indkøbskurv, så definerer vi, hvordan vi ønsker, at prisdata og det ønskede produkt skal opnås, som vi ser i det følgende billede, at vi opretter en tuple.
Hvad ville der nu ske, hvis indkøbsvognens funktionalitet udvides, og nu arbejder vi med auktioner, på en eller anden måde bør vi angive de værdier, der skal modtages, og hvordan man skal handle, når man bruger de samme metoder, som mange ville tro er at gøre en funktion af følgende form, er det imidlertid ikke hensigtsmæssigt.
Som vi kan se på billedet, dækker vi øjeblikkets muligheder, men hvad der sker, når funktionaliteterne øges, bliver vi nødt til at blive ved med at opdatere denne kode for altid, det er her, polymorfismen kommer ind, og hvad vi gør er at definere, at hver objekt returnerer sin pris uanset hvordan det beregnes, da det er noget internt i hver klasse, hvilket ville være som følger:
Vi kan da se, at det er noget, der hjælper os med at have en kode, der er mere holdbar over tid, lettere at vedligeholde.
Dette består i at skjule klassens interne detaljer for omverdenen, så den kun kan tilgås af sine egne objekter og metoder, på denne måde kan vi arbejde med klasser uden at skulle kende deres interne arbejde, eliminere implementeringskompleksitet og beskytte logikken i vores objekter.
Det tillader os også arbejde med sikkerhed for, at dataene i vores objekt ikke ændres, da hvis de fungerer på en abstrakt måde, vil vi være i stand til at instantiere flere gange, og hver instans er totalt individuel.
Lad os se på et eksempel på et objekt, der ikke er indkapslet:
Her ser vi det, selvom det var o1 hvem lavede et sæt af navnet, o2 få adgang til det samme navn uden at have angivet det, ville dette i en applikation være problematisk, lad os forestille os, at vi har brug for prisen på flere produkter, og hver overskriver prisen på den forrige.
Lad os nu med en indkapsling se på, hvordan hele programmets forløb ville fungere.
Her ser vi, at hvert objekt beholder sit navn, så vi ved, at vi kan arbejde sikkert ved at opnå de korrekte værdier for hvert af vores objekter.