- Objektorienteret programmering
- Fordel ved OOP'er frem for procedureorienteret programmeringssprog
- Forskellen mellem objektorienteret og objektbaseret programmeringssprog.
På denne side lærer vi om det grundlæggende i OOP'er. Objektorienteret programmering er et paradigme, der giver mange begreber, som f.eks arv , databinding , polymorfi , etc.
starten betragtes som det første objektorienterede programmeringssprog. Programmeringsparadigmet, hvor alt er repræsenteret som et objekt, er kendt som et virkelig objektorienteret programmeringssprog.
Småsnak betragtes som det første virkelig objektorienterede programmeringssprog.
De populære objektorienterede sprog er Java , C# , PHP , Python , C++ , etc.
Hovedformålet med objektorienteret programmering er at implementere enheder i den virkelige verden, for eksempel objekt, klasser, abstraktion, arv, polymorfi osv.
for hver java
OOPs (objektorienteret programmeringssystem)
Objekt betyder en virkelighed, såsom en kuglepen, stol, bord, computer, ur osv. Objektorienteret programmering er en metode eller et paradigme til at designe et program ved hjælp af klasser og objekter. Det forenkler softwareudvikling og vedligeholdelse ved at give nogle koncepter:
- Objekt
- Klasse
- Arv
- Polymorfi
- Abstraktion
- Indkapsling
Bortset fra disse begreber er der nogle andre udtryk, der bruges i objektorienteret design:
- Kobling
- Samhørighed
- Foreningen
- Aggregation
- Sammensætning
Objekt
Enhver enhed, der har tilstand og adfærd, er kendt som et objekt. For eksempel en stol, kuglepen, bord, tastatur, cykel osv. Det kan være fysisk eller logisk.
Et objekt kan defineres som en forekomst af en klasse. Et objekt indeholder en adresse og fylder noget i hukommelsen. Objekter kan kommunikere uden at kende detaljerne i hinandens data eller kode. Det eneste nødvendige er typen af meddelelse, der accepteres, og typen af svar, der returneres af objekterne.
Eksempel: En hund er et objekt, fordi den har tilstande som farve, navn, race osv. samt adfærd som at logre med halen, gø, spise osv.
Klasse
Samling af genstande kaldes klasse. Det er en logisk enhed.
En klasse kan også defineres som en blueprint, hvorfra du kan oprette et individuelt objekt. Klassen bruger ikke plads.
Arv
Når et objekt erhverver alle egenskaber og adfærd for et overordnet objekt , er det kendt som arv. Det giver kodegenanvendelighed. Det bruges til at opnå runtime polymorfi.
Polymorfi
Hvis én opgave udføres på forskellige måder , er det kendt som polymorfi. For eksempel: at overbevise kunden anderledes, at tegne noget, for eksempel form, trekant, rektangel osv.
I Java bruger vi metodeoverbelastning og metodeoverstyring for at opnå polymorfi.
Et andet eksempel kan være at tale noget; f.eks. taler en kat mjav, hund gøer woof osv.
Abstraktion
Skjuler interne detaljer og viser funktionalitet er kendt som abstraktion. For eksempel telefonopkald, vi kender ikke den interne behandling.
I Java bruger vi abstrakt klasse og interface til at opnå abstraktion.
Indkapsling
Binding (eller indpakning) kode og data sammen til en enkelt enhed er kendt som indkapsling . For eksempel en kapsel, den er pakket ind med forskellige lægemidler.
En java-klasse er eksemplet på indkapsling. Java bean er den fuldt indkapslede klasse, fordi alle datamedlemmer er private her.
Kobling
Kobling refererer til en anden klasses viden eller information eller afhængighed. Det opstår, når klasserne er opmærksomme på hinanden. Hvis en klasse har en anden klasses detaljerede oplysninger, er der en stærk kobling. I Java bruger vi private, beskyttede og offentlige modifikatorer til at vise synlighedsniveauet for en klasse, metode og felt. Du kan bruge grænseflader til den svagere kobling, fordi der ikke er nogen konkret implementering.
Samhørighed
Samhørighed refererer til niveauet af en komponent, der udfører en enkelt veldefineret opgave. En enkelt veldefineret opgave udføres ved en meget sammenhængende metode. Den svagt sammenhængende metode vil opdele opgaven i separate dele. Java.io-pakken er en meget sammenhængende pakke, fordi den har I/O-relaterede klasser og grænseflade. Men java.util-pakken er en svagt sammenhængende pakke, fordi den har urelaterede klasser og grænseflader.
Foreningen
Association repræsenterer forholdet mellem objekterne. Her kan et objekt associeres med et objekt eller mange objekter. Der kan være fire typer tilknytning mellem objekterne:
- En til en
- En til mange
- Mange til en, og
- Mange til Mange
Lad os forstå forholdet med eksempler i realtid. Et land kan f.eks. have en premierminister (en til en), og en premierminister kan have mange ministre (en til mange). Også mange parlamentsmedlemmer kan have én premierminister (mange til én), og mange ministre kan have mange afdelinger (mange til mange).
Association kan være ikke-direktionel eller tovejs.
Aggregation
Aggregation er en måde at opnå forening på. Aggregation repræsenterer forholdet, hvor et objekt indeholder andre objekter som en del af dets tilstand. Det repræsenterer det svage forhold mellem objekter. Det betegnes også som en har en forhold i Java. Ligesom arv repræsenterer er en forhold. Det er en anden måde at genbruge objekter på.
klyngedannelse
Sammensætning
Sammensætningen er også en måde at opnå Association på. Sammensætningen repræsenterer forholdet, hvor et objekt indeholder andre objekter som en del af dets tilstand. Der er et stærkt forhold mellem det indeholdende objekt og det afhængige objekt. Det er den tilstand, hvor indeholdende objekter ikke har en selvstændig eksistens. Hvis du sletter det overordnede objekt, slettes alle underordnede objekter automatisk.
Fordel ved OOP'er frem for procedureorienteret programmeringssprog
1) OOP'er gør udvikling og vedligeholdelse lettere, hvorimod det i et procedureorienteret programmeringssprog ikke er let at administrere, hvis koden vokser i takt med, at projektstørrelsen øges.
2) OOP'er giver dataskjul, hvorimod globale data i et procedureorienteret programmeringssprog kan tilgås fra hvor som helst.
Figur: Datarepræsentation i procedureorienteret programmering
Figur: Datarepræsentation i objektorienteret programmering
3) OOP'er giver mulighed for at simulere begivenheder i den virkelige verden meget mere effektivt. Vi kan levere løsningen på et rigtigt ordproblem, hvis vi bruger det objektorienterede programmeringssprog.
Hvad er forskellen mellem et objektorienteret programmeringssprog og et objektbaseret programmeringssprog?
Objektbaseret programmeringssprog følger alle funktionerne i OOP'er undtagen arv. JavaScript og VBScript er eksempler på objektbaserede programmeringssprog.
Ved du?
- Kan vi overbelaste hovedmetoden?
- En Java Constructor returnerer en værdi, men hvad?
- Kan vi lave et program uden hovedmetode?
- Hvad er de seks måder at bruge dette søgeord på?
- Hvorfor understøttes multipel nedarvning ikke i Java?
- Hvorfor bruge aggregering?
- Kan vi tilsidesætte den statiske metode?
- Hvad er den kovariante returtype?
- Hvad er de tre anvendelser af Java super nøgleord?
- Hvorfor bruge instansinitialiseringsblok?
- Hvad er brugen af en tom slutvariabel?
- Hvad er en markør eller tagget grænseflade?
- Hvad er runtime polymorfisme eller dynamisk metodeafsendelse?
- Hvad er forskellen mellem statisk og dynamisk binding?
- Hvordan downcasting er mulig i Java?
- Hvad er formålet med en privat konstruktør?
- Hvad er objektkloning?
- Fordel ved OOP'er
- Navnekonvention
- Objekt og klasse
- Metode overbelastning
- Konstruktør
- statisk søgeord
- dette søgeord med seks brug
- Arv
- Aggregation
- Metode tilsidesættelse
- Kovariant returtype
- super nøgleord
- Instance Initializer blok
- sidste søgeord
- Abstrakt klasse
- Interface
- Runtime polymorfisme
- Statisk og dynamisk binding
- Downcasting med instans af operatør
- Pakke
- Adgangsmodifikatorer
- Indkapsling
- Objektkloning