object oriented programming c
Inleiding tot objectgeoriënteerd programmeren in C ++.
Met deze tutorial starten we een reeks tutorials om meer te leren over C ++ als objectgeoriënteerde programmeertaal.
Zoals we weten, werden voorafgaand aan objectgeoriënteerd programmeren (OOP) programma's geschreven met procedurele talen. Procedurele talen benadrukken functies. De grotere problemen worden opgesplitst in kleinere deelproblemen en geschreven als functies.
Zie hier om de volledige lijst met C ++ - zelfstudies te verkennen.
Proceduretalen letten niet op gegevens. Als gevolg hiervan was de mogelijkheid om het probleem niet op een effectieve manier aan te pakken groot. Omdat gegevens bijna werden verwaarloosd, kwam de gegevensbeveiliging ook gemakkelijk in gevaar.
Al deze nadelen van procedureel programmeren werden overwonnen door objectgeoriënteerd programmeren.
In deze tutorial bespreken we de basisprincipes van objectgeoriënteerd programmeren en in het kort alle functies van OOP.
Wat je leert:
- Objectgeoriënteerd programmeren in C ++
- Waarom is C ++ gedeeltelijk OOP?
- OOP-functies
- Voordelen van OOP
- Gevolgtrekking
- Aanbevolen literatuur
Objectgeoriënteerd programmeren in C ++
Objectgeoriënteerd programmeren draait om data. De belangrijkste programmeereenheid van OOP is het object. Een object is een weergave van een real-time entiteit en bestaat uit gegevens en methoden of functies die op gegevens werken. Op deze manier zijn gegevens en functies nauw met elkaar verbonden en is de gegevensbeveiliging verzekerd.
In OOP wordt alles weergegeven als een object en wanneer programma's worden uitgevoerd, communiceren de objecten met elkaar door berichten door te geven. Een object hoeft de implementatiedetails van een ander object niet te kennen om te communiceren.
Naast objecten ondersteunt OOP verschillende functies die hieronder worden vermeld:
- Klassen
- Inkapseling
- Abstractie
- Erfenis
- Polymorfisme
Met behulp van OOP schrijven we programma's met klassen en objecten door de bovenstaande functies te gebruiken. Van een programmeertaal wordt gezegd dat het een echte objectgeoriënteerde programmeertaal is als alles wat het vertegenwoordigt een object gebruikt. Smalltalk is een taal die een pure objectgeoriënteerde programmeertaal is.
Aan de andere kant zouden programmeertalen zoals C ++ en Java partiële objectgeoriënteerde programmeertalen zijn.
Waarom is C ++ gedeeltelijk OOP?
C ++ -taal is ontworpen met de belangrijkste bedoeling om objectgeoriënteerde functies te gebruiken voor C-taal.
Hoewel de C ++ -taal de functies van OOP ondersteunt, zoals klassen, objecten, overerving, inkapseling, abstractie en polymorfisme, zijn er enkele redenen waarom C ++ wordt geclassificeerd als een gedeeltelijk objectgeoriënteerde programmeertaal.
afstemming van prestaties in orakel-interviewvragen
Hieronder geven we een aantal van deze redenen:
# 1) Het creëren van klassen / objecten is optioneel
In C ++ is de hoofdfunctie verplicht en valt deze altijd buiten de klas. Daarom kunnen we maar één hoofdfunctie in het programma hebben en kunnen we het doen zonder klassen en objecten.
Dit is de eerste schending van Pure OOP-taal waarbij alles als een object wordt weergegeven.
# 2) Gebruik van globale variabelen
C ++ heeft een concept van globale variabelen die buiten het programma worden gedeclareerd en toegankelijk zijn voor elke andere entiteit van het programma. Dit schendt inkapseling. Hoewel C ++ inkapseling ondersteunt met betrekking tot klassen en objecten, zorgt het er niet voor in het geval van globale variabelen.
# 3) Aanwezigheid van een vriendfunctie
C ++ ondersteunt een vriendenklasse of -functie die kan worden gebruikt om toegang te krijgen tot privé- en beschermde leden van andere klassen door ze een vriend te maken. Dit is nog een ander kenmerk van C ++ dat in strijd is met het OOP-paradigma.
Tot slot, hoewel C ++ alle bovengenoemde OOP-functies ondersteunt, biedt het ook functies die kunnen dienen als een tijdelijke oplossing voor deze functies, zodat we ze zonder kunnen. Dit maakt C ++ een gedeeltelijk objectgeoriënteerde programmeertaal.
OOP-functies
Hier zullen we verschillende OOP-functies introduceren die worden gebruikt voor het programmeren.
Klassen en objecten
Een object is een basiseenheid bij objectgeoriënteerd programmeren. Een object bevat gegevens en methoden of functies die op die gegevens werken. Objecten nemen geheugenruimte in beslag.
Een klasse daarentegen is een blauwdruk van het object. Omgekeerd kan een object worden gedefinieerd als een instantie van een klasse. Een klasse bevat een skelet van het object en neemt geen ruimte in het geheugen in.
Laten we een Voorbeeld van een auto-object. Een auto-object met de naam 'Maruti' kan gegevens bevatten zoals kleur; merk, model, snelheidslimiet, etc. en functies zoals accelereren. We definiëren een ander object 'ford'. Dit kan vergelijkbare gegevens en functies hebben als die van het vorige object plus nog wat toevoegingen.
Evenzo kunnen we talloze objecten met verschillende namen hebben met vergelijkbare gegevens en functies en enkele kleine variaties.
Dus in plaats van deze vergelijkbare gegevens en functies in deze verschillende objecten te definiëren, definiëren we een blauwdruk van deze objecten, een klasse genaamd Car. Elk van de bovenstaande objecten zijn exemplaren van deze klassewagen.
Abstractie
Abstractie is het proces waarbij irrelevante informatie voor de gebruiker wordt verborgen. Bijvoorbeeld , als we de auto besturen, starten we eerst de motor door een sleutel in te steken. We zijn ons niet bewust van het proces dat zich op de achtergrond afspeelt om de motor te starten.
Door abstractie te gebruiken bij het programmeren, kunnen we onnodige details voor de gebruiker verbergen. Door abstractie in onze applicatie te gebruiken, wordt de eindgebruiker niet beïnvloed, zelfs niet als we de interne implementatie wijzigen.
Inkapseling
Inkapseling is het proces waarbij gegevens en de methoden of functies die erop werken, worden gebundeld. Hierdoor zijn data niet gemakkelijk toegankelijk voor de buitenwereld. In OOP bereiken we inkapseling door gegevensleden privé te maken en openbare functies te hebben om toegang te krijgen tot deze gegevensleden.
Erfenis
Als u een overervingsobject van de ene klasse gebruikt, kunt u de eigenschappen van het object van een andere klasse overnemen of verkrijgen. Overerving biedt herbruikbaarheid van code.
hoe keuzerondje te selecteren in selenium webdriver
Als zodanig kunnen we een nieuwe klasse ontwerpen door de eigenschappen en functionaliteit van een andere klasse te verwerven en in dit proces hoeven we de functionaliteit van de bovenliggende klasse niet te wijzigen. We voegen alleen nieuwe functionaliteit toe aan de klas.
Polymorfisme
Polymorfisme betekent vele vormen.
Polymorfisme is een belangrijk kenmerk van OOP en wordt meestal geïmplementeerd als overbelasting van de operator of overbelasting van functies. Overbelasting van de operator is een proces waarbij een operator zich in verschillende situaties anders gedraagt. Evenzo gedraagt dezelfde functie zich bij overbelasting van functies in verschillende situaties anders.
Dynamische binding
OOP ondersteunt dynamische binding waarbij functieaanroep tijdens runtime wordt opgelost. Dit betekent dat de code die moet worden uitgevoerd als resultaat van een functieaanroep tijdens runtime wordt bepaald. Virtuele functies zijn een voorbeeld van dynamische binding.
Bericht overslaan
In OOP communiceren objecten met elkaar via berichten. Wanneer objecten communiceren, wordt informatie heen en weer doorgegeven tussen de objecten. Een bericht bestaat doorgaans uit de objectnaam, de methode-naam en feitelijke gegevens die naar een ander object moeten worden verzonden.
Voordelen van OOP
Laten we enkele van de voordelen van OOP bespreken.
# 1) Herbruikbaarheid
Met OOP kan de bestaande code worden hergebruikt door overerving. We kunnen de bestaande functionaliteit gemakkelijk overnemen en verbeteren zonder de code opnieuw te hoeven schrijven. Dit resulteert in minder opgeblazen code.
# 2) Modulariteit
Aangezien we het programma modulariseren in OOP, is het gemakkelijk om het programma aan te passen of problemen op te lossen als er een probleem optreedt of als er een nieuwe functie of verbetering moet worden toegevoegd. Modularisatie helpt ook bij de duidelijkheid van de code en maakt deze beter leesbaar.
# 3) Flexibiliteit
OOP helpt ons met flexibel programmeren met behulp van de polymorfismefunctie. Omdat polymorfisme vele vormen aanneemt, kunnen we operators of functies hebben die met veel objecten werken en ons dus besparen van het schrijven van verschillende functies voor elk object.
# 4) Onderhoudbaarheid
Het onderhouden van code is gemakkelijker omdat het gemakkelijk is om nieuwe klassen, objecten, enz. Toe te voegen zonder veel herstructurering of wijzigingen.
# 5) Gegevens en informatie verbergen
OOP helpt ons bij het verbergen van gegevens, waardoor informatie wordt beschermd tegen lekken. Alleen de gegevens die nodig zijn voor de soepele werking van het programma worden aan de gebruiker blootgesteld door intrinsieke details te verbergen.
Gevolgtrekking
OOP is het belangrijkste en meest flexibele programmeerparadigma van modern programmeren. Het is met name handig bij het modelleren van problemen uit de echte wereld en is daarom erg populair.
In deze tutorial hebben we de verschillende features van OOP besproken. We zullen al deze functies in detail bespreken.
Het volgende onderwerp in deze serie 'OOP met C ++' zal in detail op klassen en objecten focussen.
Klik hier voor de Absolute C ++ trainingsserie.
Aanbevolen literatuur
- OOP Java: inleiding tot objectgeoriënteerd programmeren in Java
- C ++ gegevenstypen
- Top 10 Data Science Tools in 2021 om programmeren te elimineren
- Data-abstractie in C ++
- Inleiding tot gegevensstructuren in C ++
- Unix Pipes-zelfstudie: Pipes in Unix-programmering
- QTP Tutorial # 8 - Leer over QTP-opnamemodi, Object Spy en Object Repositories
- 70+ BESTE C ++ Tutorials om GRATIS C ++ Programmeren te leren