- Object georiënteerd programmeren
- Voordeel van OOP's ten opzichte van proceduregerichte programmeertaal
- Verschil tussen objectgeoriënteerde en objectgebaseerde programmeertaal.
Op deze pagina leren we over de basisprincipes van OOP's. Objectgeoriënteerd programmeren is een paradigma dat veel concepten biedt, zoals erfenis , Dataverbinding , polymorfisme , enz.
begin wordt beschouwd als de eerste objectgeoriënteerde programmeertaal. Het programmeerparadigma waarin alles wordt weergegeven als een object staat bekend als een echt objectgeoriënteerde programmeertaal.
Koetjes en kalfjes wordt beschouwd als de eerste echt objectgeoriënteerde programmeertaal.
De populaire objectgeoriënteerde talen zijn dat wel Java , C# , PHP , Python , C++ , enz.
Het belangrijkste doel van objectgeoriënteerd programmeren is het implementeren van entiteiten uit de echte wereld, bijvoorbeeld object, klassen, abstractie, overerving, polymorfisme, enz.
jquery deze klik
OOP's (objectgeoriënteerd programmeersysteem)
Voorwerp betekent een entiteit uit de echte wereld, zoals een pen, stoel, tafel, computer, horloge, enz. Object georiënteerd programmeren is een methodologie of paradigma om een programma te ontwerpen met behulp van klassen en objecten. Het vereenvoudigt de ontwikkeling en het onderhoud van software door enkele concepten te bieden:
Naast deze concepten zijn er nog enkele andere termen die worden gebruikt in Object-Oriented Design:
- Koppelen
- Samenhang
- Vereniging
- Aggregatie
- Samenstelling
Voorwerp
Elke entiteit die een toestand en gedrag heeft, staat bekend als een object. Bijvoorbeeld een stoel, pen, tafel, toetsenbord, fiets, etc. Het kan fysiek of logisch zijn.
Een object kan worden gedefinieerd als een instantie van een klasse. Een object bevat een adres en neemt wat ruimte in het geheugen in beslag. Objecten kunnen communiceren zonder de details van elkaars gegevens of code te kennen. Het enige noodzakelijke is het type bericht dat wordt geaccepteerd en het type antwoord dat door de objecten wordt geretourneerd.
Voorbeeld: Een hond is een object omdat hij toestanden heeft zoals kleur, naam, ras, enz., maar ook gedragingen zoals kwispelen met de staart, blaffen, eten, enz.
Klas
Verzameling van objecten heet klasse. Het is een logisch geheel.
Een klasse kan ook worden gedefinieerd als een blauwdruk waaruit u een individueel object kunt maken. De klas neemt geen ruimte in beslag.
Erfenis
Wanneer één object alle eigenschappen en gedragingen van een ouderobject verwerft , het staat bekend als erfenis. Het biedt herbruikbaarheid van code. Het wordt gebruikt om runtime-polymorfisme te bereiken.
Polymorfisme
Als één taak wordt op verschillende manieren uitgevoerd , het staat bekend als polymorfisme. Bijvoorbeeld: de klant anders overtuigen, iets tekenen, bijvoorbeeld vorm, driehoek, rechthoek etc.
In Java gebruiken we methode-overbelasting en methode-overschrijving om polymorfisme te bereiken.
Een ander voorbeeld kan zijn om iets te zeggen; een kat spreekt bijvoorbeeld miauw, een hond blaft inslag, enz.
Abstractie
Interne details verbergen en functionaliteit tonen staat bekend als abstractie. Bijvoorbeeld telefoongesprek, de interne verwerking kennen we niet.
In Java gebruiken we abstracte klasse en interface om abstractie te bereiken.
mijnkrekellive
Inkapseling
Het samenbinden (of inpakken) van code en gegevens in één enkele eenheid staat bekend als inkapseling . Een capsule is bijvoorbeeld omwikkeld met verschillende medicijnen.
Een Java-klasse is het voorbeeld van inkapseling. Java Bean is de volledig ingekapselde klasse omdat alle gegevensleden hier privé zijn.
Koppelen
Koppeling verwijst naar de kennis, informatie of afhankelijkheid van een andere klasse. Het ontstaat wanneer klassen zich van elkaar bewust zijn. Als een klasse de detailinformatie van een andere klasse heeft, is er sprake van een sterke koppeling. In Java gebruiken we private, protected en public modifiers om het zichtbaarheidsniveau van een klasse, methode en veld weer te geven. Voor de zwakkere koppeling kun je interfaces gebruiken omdat er geen concrete implementatie is.
Samenhang
Cohesie verwijst naar het niveau van een component dat één welomschreven taak uitvoert. Eén enkele, goed gedefinieerde taak wordt uitgevoerd volgens een zeer samenhangende methode. Bij de zwak samenhangende methode wordt de taak in afzonderlijke delen opgesplitst. Het java.io-pakket is een zeer samenhangend pakket omdat het I/O-gerelateerde klassen en interfaces heeft. Het pakket java.util is echter een zwak samenhangend pakket omdat het niet-gerelateerde klassen en interfaces heeft.
Vereniging
Associatie vertegenwoordigt de relatie tussen de objecten. Hier kan één object aan één object of aan meerdere objecten worden gekoppeld. Er kunnen vier soorten associaties tussen de objecten bestaan:
- Een op een
- Een te veel
- Veel tegen één, en
- Veel te veel
Laten we de relatie met realtime voorbeelden begrijpen. Eén land kan bijvoorbeeld één premier hebben (één op één), en een premier kan veel ministers hebben (één op veel). Ook kunnen veel parlementsleden één premier hebben (veel tegen één), en veel ministers kunnen veel departementen hebben (veel tegen veel).
Associatie kan ongericht of bidirectioneel zijn.
Aggregatie
Aggregatie is een manier om associatie te bereiken. Aggregatie vertegenwoordigt de relatie waarbij een object andere objecten bevat als onderdeel van zijn staat. Het vertegenwoordigt de zwakke relatie tussen objecten. Het wordt ook wel een heeft een relatie op Java. Overerving vertegenwoordigt bijvoorbeeld de is een relatie. Het is een andere manier om objecten opnieuw te gebruiken.
Samenstelling
De compositie is ook een manier om associatie te bereiken. De compositie vertegenwoordigt de relatie waarbij een object andere objecten bevat als onderdeel van zijn staat. Er is een sterke relatie tussen het bevattende object en het afhankelijke object. Het is de toestand waarin bevattende objecten geen onafhankelijk bestaan hebben. Als u het bovenliggende object verwijdert, worden alle onderliggende objecten automatisch verwijderd.
Voordeel van OOP's ten opzichte van proceduregerichte programmeertaal
1) OOP's maken ontwikkeling en onderhoud eenvoudiger, terwijl het in een proceduregerichte programmeertaal niet eenvoudig te beheren is als de code groeit naarmate de projectomvang toeneemt.
2) OOP's bieden het verbergen van gegevens, terwijl in een proceduregerichte programmeertaal wereldwijde gegevens overal toegankelijk zijn.
Figuur: Gegevensrepresentatie in proceduregericht programmeren
Figuur: Gegevensrepresentatie in objectgeoriënteerd programmeren
3) OOP's bieden de mogelijkheid om gebeurtenissen uit de echte wereld veel effectiever te simuleren. We kunnen de oplossing bieden voor een echt woordprobleem als we de objectgeoriënteerde programmeertaal gebruiken.
Wat is het verschil tussen een objectgeoriënteerde programmeertaal en een objectgebaseerde programmeertaal?
Objectgebaseerde programmeertaal volgt alle kenmerken van OOP's behalve overerving. JavaScript en VBScript zijn voorbeelden van objectgebaseerde programmeertalen.
Ken jij?
- Kunnen we de hoofdmethode overbelasten?
- Een Java Constructor retourneert een waarde, maar wat?
- Kunnen we een programma maken zonder hoofdmethode?
- Wat zijn de zes manieren om dit zoekwoord te gebruiken?
- Waarom wordt meervoudige overerving niet ondersteund in Java?
- Waarom aggregatie gebruiken?
- Kunnen we de statische methode negeren?
- Wat is het covariante retourtype?
- Wat zijn de drie toepassingen van het Java-superzoekwoord?
- Waarom een instance-initialisatieblok gebruiken?
- Wat is het gebruik van een lege eindvariabele?
- Wat is een marker of getagde interface?
- Wat is runtime-polymorfisme of dynamische methodeverzending?
- Wat is het verschil tussen statische en dynamische binding?
- Hoe downcasting is mogelijk in Java?
- Wat is het doel van een particuliere bouwer?
- Wat is objectklonen?
- Voordeel van OOP's
- Naamgeving
- Object en klasse
- Methode overbelasting
- Constructeur
- statisch trefwoord
- dit trefwoord met zes gebruik
- Erfenis
- Aggregatie
- Methode overschrijven
- Covariant retourtype
- supertrefwoord
- Instance Initializer-blok
- laatste trefwoord
- Abstracte klasse
- Koppel
- Runtime-polymorfisme
- Statische en dynamische binding
- Downcasten met instanceof operator
- Pakket
- Toegang tot modificaties
- Inkapseling
- Objectklonen