Hvad er OOP? - Principper med eksempler Fordele ulemper

Indholdsfortegnelse:

Anonim

Hvad er OOP?

Objektorienteret programmering (eller OOP) er et paradigme ved programmering, hvor programmer skrives og struktureres omkring objekter snarere end funktioner eller logik. Her defineres objekter som datafelter, der har unikke attributter og opførsel. De indeholder data i form af attributter og procedurer i form af metoder. Objektprocedurer kan få adgang til og ændre de data, der findes i et objekt.

Der er mange OOP-sprog, hvor de mest populære er klassebaserede, hvor objekter vil være et eksempel på en klasse. En klasse er en container til data og procedurer, også kendt som datamedlemmer og medlemsfunktioner. Lad os betragte et eksempel på et objekt som en bil. En bil har attributter som farve, mærkenavn, brændstofskapacitet osv., Og den har metoder til at repræsentere en bils opførsel som en start, accelerere, bryde osv. En klasse er en plan for attributter og metoder og optager ikke plads, indtil og medmindre der er lavet et objekt til den klasse.

Eksempel :

class car
(
char name(20); // name and colour are attributes
char colour(20);
public void start()() //start is a method
);
void main()
(
car c1; //c1 is an object
)

Objektorienterede programmeringsmål, der skal implementeres i programmering, enheder i den virkelige verden som arv, polymorfisme, indkapsling osv., Som vi vil se detaljeret. Hovedformålet med OOP er at kollektivt binde data og de funktioner, der fungerer på dem, således at disse data kun er tilgængelige af denne funktion.

Principper for OOP

De fire hovedprincipper for objektorienteret programmering er indkapsling, abstraktion, arv og polymorfisme.

1. Indkapsling:

Binding af data og metoder til en enkelt enhed kaldes indkapsling. Indkapsling opnås, når hvert objekt i klassen holder sin tilstand privat. Dataene inde i denne enhed er ikke tilgængelige af eksterne objekter, og kun de funktioner i denne enhed har adgang til den. Således styrer objektet sin tilstand ved hjælp af dets metoder, og for at kommunikere med dette objekt, vil vi kræve hjælp fra de offentlige metoder i denne klasse.

2. Abstraktion

Abstraktion er en udvidelse af indkapsling. Det betyder kun at give den nødvendige information til omverdenen, mens man skjuler de interne detaljer om gennemførelsen. Det afslører kun de relevante handlinger for andre objekter. Fordelen med dette er, at vi kan ændre implementeringen uden at påvirke klassen, da metodegrænsefladen forbliver den samme.

Lad os tage eksemplet med en lommeregner, der tager input fra os, og ved at trykke på en knap giver os det ønskede output, mens vi skåner os for de interne detaljer om, hvordan det er nået frem til det svar.

3. Arv

Ofte er objekter ens i funktionalitet, der deler en del af logikken, men adskiller sig fra resten. Så hvordan genbruger vi den fælles logik og adskiller den forskellige logik? Dette kan opnås ved arv. I arv skaber vi en ny klasse kaldet som barneklasse, der er afledt af den eksisterende klasse kaldet forældreklasse, og således danner et hier0arki af klasser. Børneklassen genbruger de datafelter og metoder, det kræver fra forældreklassen, og implementerer dens unikke funktionalitet på egen hånd.

For eksempel kan et køretøj være en forældreklasse, hvorfra vi kan udlede børneklasser som cykel og bil. De deler de fælles egenskaber ved at være i stand til at køre med brændstof og transportere passagerer, men adskiller sig i antallet af passagerer, de kan transportere, og mere sådanne egenskaber.

4. Polymorfisme

Polymorfisme er evnen til at tage mere end én form. Antag, at vi har en forældreklasse og et par af dets barneklasser. Nu vil vi bruge attributter fra både forældre og børneklasser, så hvordan kan det opnås? Dette kan gøres ved hjælp af polymorfisme. I polymorfisme udføres abstrakte enheder på flere måder. Det giver en måde at forbruge en klasse nøjagtigt som forældreklassen, således at der ikke er nogen forvirring med at blande klassen, og hver barneklasse fortsætter med at holde sine metoder, som den var. Dette kan gøres ved at genbruge en overordnet grænseflade, så børneklassen kan implementere disse metoder i deres egen version.

Fordele ved objektorienteret programmering

  • En ide i den virkelige verden kan demonstreres, da alt i OOP behandles som et objekt.
  • Når vi bruger konceptet med indkapsling, er programmer lettere at teste og vedligeholde.
  • Hurtigere udvikling af kode udføres, da vi udvikler parallelle klasser i stedet for sekventielt.
  • OOP giver større sikkerhed på grund af dataabstraktion. Omverdenen har ikke adgang til de skjulte data.
  • Genanvendelighed kan opnås ved at bruge klasser, der allerede er skrevet.

Ulemper ved objektorienteret programmering

  • Det kan være vanskeligt at designe et program med OOP-koncept.
  • En programmerer skal planlægge på forhånd for at udvikle et program i OOP.
  • Størrelsen på programmer udviklet med OOP er større end dem, der er udviklet med en proceduremæssig tilgang.
  • Da OOP-programmer er større i størrelse, er udførelsestiden for disse programmer også mere.

Hvordan kan viden om OOP hjælpe med karrierevækst?

Mange af de største trendsprog i disse dage som Java og Ruby, bruger Objektorienterede programmeringskoncepter. OOP-sprog hjælper med at skrive software til applikationer som mobil-, web- og spilapplikationer. Der er en høj indtjening i disse felter, ligesom de bedste jobmuligheder for programmerere at ligge i disse felter. Det er let at flytte til forskellige teknologier og sprog med det grundlæggende i OOP, og det udvider dermed vores karriereudsigter. En ulempe ved dette er ekspertise. Normalt søger virksomheder efter praktisk erfaring med OOP-sprog og koncepter, så det anbefales at øve, mens vi går langs læringsprocessen.

Konklusion

Objektorienteret programmering forenkler programmeringsprocessen for os. Det har mange værdier som genanvendelighed, effektivitet og vedligeholdelse af kode. Selvom det oprindeligt kan være svært at forstå OOPs-koncepter, kan jeg forsikre dig om, at frugten er værd at gøre. Håber denne artikel hjalp med til at forenkle disse koncepter for dig!

Anbefalet artikel

Dette har været en guide til Hvad er OOP? Her drøftede vi koncepter, definition og principper med fordele og ulemper ved OOP. Du kan også gennemgå vores andre foreslåede artikler for at lære mere -

  1. Er Hadoop Open Source?
  2. Hvad er Java-arv?
  3. Hvad er multithreading i C #?
  4. Hvad er ASP.Net Web Services?