Vad är OOP?
Objektorienterad programmering (eller OOP) är ett paradigm för programmering där program skrivs och struktureras kring objekt snarare än funktioner eller logik. Här definieras objekt som datafält som har unika attribut och beteende. De innehåller data i form av attribut och procedurer i form av metoder. Objektprocedurer kan komma åt och ändra de data som finns i ett objekt.
Det finns många OOP-språk, där de mest populära är klassbaserade, där objekt kommer att vara ett exempel på en klass. En klass är en behållare för data och procedurer, även känd som datamedlemmar och medlemsfunktioner. Låt oss betrakta ett exempel på ett objekt som en bil. En bil har attribut som färg, varumärke, bränslekapacitet osv. Och den har metoder för att representera beteendet hos en bil som en start, accelerera, bryta, etc. En klass är en plan för attribut och metoder och upptar inte utrymme, tills och om inte ett objekt för den klassen skapas.
Exempel :
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
)
Objektorienterade programmeringsmål att implementera i programmering, verkliga enheter som arv, polymorfism, inkapsling, etc. som vi kommer att se i detalj. Huvudsyftet med OOP är att kollektivt binda data och de funktioner som fungerar på dem, så att denna information endast är tillgänglig för den funktionen.
Principer för OOP
De fyra huvudprinciperna för objektorienterad programmering är kapsling, abstraktion, ärvning och polymorfism.
1. Inkapsling:
Bindning av data och metoder till en enda enhet kallas kapsling. Inkapsling uppnås när varje objekt i klassen håller sin stat privat. Uppgifterna i denna enhet är inte tillgängliga av externa objekt och bara de funktioner i denna enhet har åtkomst till den. Således hanterar objektet sitt tillstånd med hjälp av dess metoder, och för att kommunicera med detta objekt kommer vi att behöva hjälp av de offentliga metoderna för denna klass.
2. Abstraktion
Abstraktion är en förlängning av inkapsling. Det innebär att endast tillhandahålla nödvändig information till omvärlden samtidigt som de interna detaljerna för genomförandet döljs. Den avslöjar endast lämpliga operationer för andra objekt. Fördelen med detta är att vi kan ändra implementeringen utan att påverka klassen, eftersom metodgränssnittet förblir detsamma.
Låt oss ta exemplet med en kalkylator som tar inmatningen från oss och med en knapptryckning ger oss önskad utgång, samtidigt som vi sparar de interna detaljerna för hur det har kommit till det svaret.
3. Arv
Ofta är objekt liknande funktionalitet, delar en del av logiken men skiljer sig åt i resten. Så hur använder vi den gemensamma logiken och separerar den olika logiken? Detta kan uppnås genom arv. I arv skapar vi en ny klass som kallas som barnklass som härstammar från den befintliga klassen som kallas förälderklassen, och därmed bildar vi en hier0arki av klasser. Barnklassen återanvänder de datafält och metoder som den kräver från förälderklassen och implementerar dess unika funktionalitet på egen hand.
Till exempel kan ett fordon vara en förälderklass, från vilken vi kan härleda barnklasser som cykel och bil. De delar de gemensamma egenskaperna för att kunna köra med bränsle och transportera passagerare men skiljer sig i antalet passagerare de kan transportera och fler sådana egenskaper.
4. Polymorfism
Polymorfism är förmågan att ta mer än en form. Anta att vi har en förälderklass och några av dess barnklasser. Nu vill vi använda attribut från både föräldrar och barnklasser, så hur kommer det att uppnås? Detta kan göras med hjälp av polymorfism. I polymorfism exekveras abstrakta enheter på flera sätt. Det ger ett sätt att konsumera en klass precis som förälderklassen, så att det inte finns någon förvirring med att blanda klasserna, och varje barnklass fortsätter att behålla sina metoder som det var. Detta kan göras genom att återanvända ett överordnat gränssnitt så att barnklass kan implementera dessa metoder i sin egen version.
Fördelar med objektorienterad programmering
- En verklig idé kan demonstreras, eftersom allt i OOP behandlas som ett objekt.
- När vi använder begreppet inkapsling är program lättare att testa och underhålla.
- Snabbare utveckling av kod görs, eftersom vi utvecklar parallella klasser istället för i följd.
- OOP ger större säkerhet på grund av dataabstraktion. Omvärlden har inte åtkomst till den dolda informationen.
- Återanvändbarhet kan uppnås genom att använda klasser som redan har skrivits.
Nackdelar med objektorienterad programmering
- Att designa ett program med OOP-koncept kan vara svårt.
- En programmerare måste planera i förväg för att utveckla ett program i OOP.
- Storleken på program som har utvecklats med OOP är större än de som utvecklats med en procedurmässig strategi.
- Eftersom OOP-program är större i storlek är utförandetiden för dessa program också mer.
Hur kan kunskap om OOP-hjälp i karriärtillväxt?
Många av de viktigaste trendspråken i dag, som Java och Ruby, använder objektorienterade programmeringskoncept. OOP-språk hjälper till att skriva programvara för applikationer som mobil-, webb- och spelapplikationer. Det finns höga intäkter inom dessa områden, som de bästa jobbmöjligheterna för programmerare att ligga inom dessa områden. Det är lätt att flytta till olika tekniker och språk med grunderna i OOP, och därmed utvidgar detta våra karriärmöjligheter. En nackdel med detta råkar vara expertis. Vanligtvis letar företag efter praktisk erfarenhet av OOP-språk och -koncept, så det rekommenderas att öva när vi går längre med inlärningsprocessen.
Slutsats
Objektorienterad programmering förenklar programmeringsprocessen för oss. Det har många värden som återanvändbarhet, effektivitet och underhåll av kod. Även om det till en början kan vara svårt att förstå OOP: s koncept, kan jag försäkra er att frukten kommer att vara värt ansträngningen. Hoppas att den här artikeln hjälpte till att förenkla dessa koncept för dig!
Rekommenderad artikel
Detta har varit en guide till Vad är OOP? Här diskuterade vi begreppen, definitionen och principerna med fördelar och nackdelar med OOP. Du kan också gå igenom våra andra föreslagna artiklar för att lära dig mer -
- Är Hadoop Open Source?
- Vad är Java-arv?
- Vad är multithreading i C #?
- Vad är ASP.Net Web Services?