Objektorientert programmering: Definisjon

Diversifiseringen av anvendelsesområdene for programmering ga opphav til forskjellige typer språk. I denne artikkelen vil vi oppdage hva er objektorientert programmering og hvilke typer objektorienterte programmeringsspråk som finnes. Våg å utvide kunnskapen din!

Objektorientert programmering

Objektorientert programmering

Generelt krever programmering kunnskap om et språk som har ansvar for å overføre kommandoer til datamaskinen, og en algoritme konvertert til et program, men hva er programmering?

Programmering er et sett med handlinger som fører til skriving av en kode, som er i stand til å oppfylle målet den ble opprettet for. For sin del, a kildekode er den interne representasjonen av et program eller en programvare, og et program er en gruppe bestillinger som styrer driften av datamaskiner.

I utgangspunktet går et program gjennom tre stadier: redigering av programmet på et passende språk, transformasjon av kildekoden til instruksjoner for maskinen og koblingen mellom objektkodene og funksjonsbibliotekene, og til slutt gir opphav til hva den er kjent som kjørbar kode.

Et program må skrives på et programmeringsspråk som er forståelig for brukeren. For at dette skal skje, må programmereren vedta et av de mange eksisterende programmeringsparadigmene, som bestemmer visjonen og derfor valget av metodene som skal følges i konstruksjonen av det samme.

Programmeringsparadigmer

Fremskritt innen programmering og teknologi har gitt opphav til ulike programmeringsmetoder eller paradigmer. Disse har igjen ført til forskjellige programmeringsstiler og forskjellige former for problemløsning. Her er de eksisterende paradigmene:

Imperativt paradigme

Den sier at programmer er en streng sekvens av instruksjoner fra topp til bunn, som bare blir avbrutt av inkluderingen av et delprogram et sted i det.

Strukturert paradigme

Den håndhever kodestrukturer gruppert etter blokker av prosedyrer og funksjoner. Koden er gjengitt i form av en sløyfe, dominert av en logisk grunn.

Deklarativ paradigme

Det fastslår ikke rekkefølgen som skal følges ved utførelsen av handlingene som er nødvendige for å løse et problem. Innenfor det skilles to typer: det funksjonelle paradigmet, der problemet og løsningen beskrives som funksjoner, og det logiske paradigmet, basert på et logisk predikat.

Arrangementsprogrammeringsparadigme

Det er basert på uendelig iterasjon for å oppdage problemet og finne ut hvordan det skal løses.

Parallelle, distribuerte og samtidige paradigmer

Realiseringen av programmet krever flere beregningsenheter. Rutinene kjøres uavhengig av andre dataenheter.

Objektorientert paradigme

Objektorientert programmering

Denne typen programmering er basert på tre grunnleggende prinsipper: datakapsling, objektabstraksjon og typekontroll i henhold til klassehierarkiet.

Det er viktig å merke seg at et programmeringsspråk vanligvis ikke bare reagerer på ett paradigme, men kan være et resultat av kombinasjonen av flere typer dem. Imidlertid vil vi nedenfor bare dedikere oss til å definere hva er objektorientert programmering og hva er de forskjellige objektorienterte programmeringsspråk som finnes

Kvaliteter

Det er det mest utbredte paradigmet i dag, fordi det gir bedre styring av kompleksitet til en rimelig pris. Gjennom den foreslås muligheten for å bygge i deler, det vil si å dele arbeidet ut fra komponenter, noe som resulterer i robuste, bærbare og gjenbrukbare applikasjoner, med langsiktige fordeler.

I motsetning til andre typer programmering, ser objektorientert programmering etter deler i enheter som oppstår fra problemdomenet, og ikke i selve problemløsningen. Det primære kravet er at hver komponent oppfører seg på en forventet måte, slik at utviklingen vår ikke påvirkes av måten den implementeres på, og at vi på forhånd kan kjenne vilkårene som tilbys av hver komponent, samt hvordan vi kan koble oss til.

Objektorientert programmering

Fra et annet synspunkt kan vi nevne at objektorientert programmering er relatert til kunnskapsteorien, som sier at mennesket lagrer informasjon i henhold til forhåndsbestemte ordninger, produktet av sine erfaringer som person. På denne måten gjør denne typen programmering det mulig å representere kunnskap på en heuristisk eller teoretisk måte, gjennom individets mentale ordninger, ved å bruke tidligere kunnskap lagret i informasjonsenheter.

Origen

https://youtu.be/aESIbDclIzw?t=5

Objektorientert programmering er en teknikk, stil eller metodikk utviklet på 1960-tallet, som et resultat av krisen som er forårsaket av umuligheten av å endre eller modifisere komplekse programmer. Situasjonen ble verre og verre på grunn av mangel på spesialisert personell som var villig til å gi vedlikehold til programmene.

Den midlertidige løsningen på denne krisen var i hendene på strukturert programmering, som besto av å dele programmene opp i individuelle prosedyrer som ville utføre spesifikke oppgaver hver for seg. Dette brakte med seg andre ulemper, hovedsakelig generert av hvor vanskelig det var å oppnå koordinering mellom de mange utviklerne som var involvert i et prosjekt, fordi jo større antall oppgaver det var, desto større var antallet programmerere.

Uten tvil var den største ulempen med denne typen programmering behovet for å konseptuelt skille dataene fra kodene. En situasjon som ble direkte forverret av programmets størrelse og kompleksitet.

For å redusere kompleksiteten til programmer ble således objektorientert programmering født. Den største fordelen er at det gjør det mulig å bygge komplekse programmer ved hjelp av enklere objekter. Disse objektene utgjør enhetene til programvaren som er orientert under denne metodikken. Evnen til å arve både data og kode fra eksisterende applikasjoner forbedrer utviklernes produktivitet. På samme måte gjør det det enkelt å utvide og gjenbruke klasser i andre applikasjoner, uten å måtte endre den originale koden i stor grad.

funksjoner

Objektorientert programmering har flere kvaliteter, her er de viktigste:

  • Grunnlaget for objektorientert programmering er klasser, ikke algoritmer. Disse utgjør logiske byggesteiner.
  • Hvert objekt er en forekomst av en klasse.
  • Et program oppfattes som et middel for Ã¥ sende og motta meldinger, gjennom et sett med objekter som reagerer pÃ¥ hverandre.
  • Hvert objekt mÃ¥ finne den beste mÃ¥ten Ã¥ svare pÃ¥ hver mottatt melding.
  • Hvert objekt kan svare pÃ¥ meldinger pÃ¥ forskjellige mÃ¥ter.
  • Det gjør det enkelt Ã¥ bytte programvare fordi komponentene er utskiftbare.
  • Delvise og interne endringer pÃ¥virker ikke oppførselen til resten av systemet.
  • Hvis de grunnleggende prinsippene for objektorientert programmering følges, vil kostnadene ved Ã¥ bygge systemet være mindre enn i tilfeller der delene er avhengige av hverandre.
  • Det er mulig at klasser avledet fra andre arver kunnskapen og ferdighetene til forgjengerne. Gjennom arv er klassene knyttet til hverandre, og arbeidsmÃ¥ten utnyttes uten at det er nødvendig Ã¥ skrive om koden.
  • Metodene til en klasse kan gjøre forskjellige ting, selv om de beholder samme navn. Det vil si, gjennom polymorfisme kan programmereren implementere flere former for samme metode, avhengig av klassen som implementeringen gjøres pÃ¥. Dette betyr at flere metoder kan nÃ¥s med samme navn eller tilgangsmedium.

Forskjeller: strukturert programmering vs. Objektorientert programmering

Som vi allerede har nevnt, representerer objektorientert programmering utviklingen av strukturert programmering, noe som ikke betyr at den er bedre enn den, siden hver enkelt har sin nytteverdi avhengig av hvilken type system som skal utvikles. De grunnleggende forskjellene som eksisterer mellom de to er etablert nedenfor:

Strukturert programmering løser algoritmiske problemer, fra introduksjonen av noen data genereres en utgang. Objektorientert programmering er basert på objektmodellering, noe som er veldig nyttig i utviklingen av webapplikasjoner.

Den første fokuserer på en datastruktur, mens den andre er basert på objekter, med sin egen tilstand og oppførsel.

Informasjonen i strukturert programmering flyter gjennom strukturer og kall til funksjoner, i objektorientert programmering er det et resultat av samspillet mellom dem, ved å sende og motta meldinger.

Grunnleggende prinsipper

Som en konsekvens av begrepet objektorientert programmering kommer tre grunnleggende prinsipper for dette paradigmet frem. Disse er:

Innkapsling av data

Som vi allerede har nevnt, forventes det at objekter vet hvordan de skal svare på meldingene de mottar, og viser spesifikk oppførsel. Det vi imidlertid ikke ønsker er at den som sender meldingen vet hvordan de gjør det. Oppnåelsen av dette målet er det som kalles innkapsling av dataene. Med andre ord, det du ønsker er at hver del av programmet bare vet hva som interesserer det, og dermed unngår sikkerhetseffekter knyttet til andre objekter.

Kort sagt, med innkapslingen av dataene, er tilgang til komponentene i objektene umulig, det vil si at disse er beskyttet i en enkelt veldefinert programmeringsenhet, fordi hver av dem har designspesifikasjoner som gjør dem uavhengige av hverandre.

Hovedårsaken til at vi kan ønske at klientobjektet ikke kjenner implementeringsmåten, er at det generelt kan være flere alternativer for den samme operasjonen. I tillegg kan vi i fremtiden bestemme oss for å bytte fra ett alternativ til et annet, uten at klienten vet eller ser leveringen av tjenesten berørt.

Objektabstraksjon

Et vesentlig kjennetegn ved objektorientert programmering er at den søker å angripe problemet i deler. På denne måten er det første det gjør å finne objektene, deretter bestemme hvordan de skal samhandle og til slutt implementere atferden. Følgelig har vi at objektene vi finner er de som vil hjelpe oss med å løse problemet.

Abstraksjon innebærer to typer kunnskap, data eller variabler, som utgjør den mentale ordningen, og metoder, funksjoner eller prosedyrer, som knytter ordningen til andre forhåndsbestemte ordninger. Det vil si, takket være dataabstraksjon, kan domenet og strukturen til dataene defineres, så vel som metodene for å få tilgang til dem kan etableres. Til slutt blir abstraksjonen en ny type data definert av programmereren, som består av attributter og metoder som brukes på førstnevnte.

På grunn av eksistensen av flere mentale ordninger for det samme problemet, kan hver programmerer organisere klassene på forskjellige måter, i henhold til hans personlige oppfatning. Det han mener er at objektabstraksjon er evnen i programdesignet til å lage brukerdefinerte data.

Skriv sjekk i henhold til klassehierarkiet

Dette er når du velger språket for å gjøre typekontroller. Det er språk som bestemmer seg for å gjøre det under kompilering, og andre under utførelse. Andre språk kompilerer ikke engang, noe som ikke gir deg muligheten til å gjøre noen sjekker før kjøring.

Når kontrollen er utført ved kjøretid, kalles det en dynamisk sjekk. I kontrast, når det er gjort på kompileringstidspunktet, kalles det statisk kontroll.

På grunn av det faktum at i den statiske kontrollen oppstår feilene fra begynnelsen, uten å nå utførelsesøyeblikket, sies det ofte at denne typen sjekk er sikrere. Imidlertid tillater dynamisk testing delvise implementeringer, uten at koden må skrives om flere ganger.

Hvordan virker det?

Det første trinnet for å løse et problem under dette paradigmet er å finne objektene eller enhetene i problemdomenet. Deretter er det nødvendig å finne måten disse enhetene samhandler for å løse problemet, etablere meldingene som objektene sender, i hvilken rekkefølge og under hvilke forhold. Til slutt må du implementere oppførselen til objektene, med henvisning til responsen de gir med hensyn til meldingene.

Oppsummert, når et program kjøres under det objektorienterte programmeringsparadigmet, skjer det tre ting: objekter opprettes etter behov, meldinger flyter fra ett objekt til et annet parallelt med informasjonsbehandlingen av programmet, og når objekter ikke lenger er nødvendige, de slettes for å frigjøre minne i systemet.

Nøkkelkonsepter

For å forstå litt mer om hva er objektorientert programmering, må vi nevne følgende grunnleggende begreper:

  • Objekt: Det refererer til enheten som kan være mottaker av meldinger, mens den kan svare pÃ¥ dem og sende meldinger til andre objekter. Det er enheten som har oppførsel.
  • Identitet: Det er aspektet som skiller ett objekt fra et annet.
  • Melding: Dette er det resulterende samspillet mellom en enhet som ber om en tjeneste og en annen som tilbyr den.
  • Klientobjekt: Det er den som sender meldingen.
  • Mottakerobjekt: Det er objektet som mottar meldingen.
  • Delegering: Henvisning til sending av meldinger fra et objekt til andre objekter. NÃ¥r et objekt trenger samarbeid fra andre for Ã¥ kunne svare pÃ¥ meldinger.
  • Atferd: De er svarene pÃ¥ meldingene som mottas av et mottakende objekt.
  • Status: Referert til gjeldende situasjon for hvert objekt.
  • Ansvar: Det er samspillet mellom tilstanden og oppførselen til et objekt.
  • Metode: Det refererer til implementeringen av responsen gitt av et objekt pÃ¥ en mottatt melding.
  • Polymorfisme: Dette er noen objekters evne til Ã¥ svare pÃ¥ det samme budskapet, men pÃ¥ flere forskjellige mÃ¥ter.
  • Klasser: De er sett med objekter som oppfører seg pÃ¥ samme mÃ¥te. De kan defineres av programmereren. De er mentale ordninger som gjør at objekter kan abstraheres og bestemme hvordan de skal forholde seg til hverandre.
  • Attributt: Det refererer til en intern variabel av objektet som er opprettet for Ã¥ lagre en del av tilstanden.
  • Kontrakt: Referert til kunnskapen om hva hver komponent tilbyr og mÃ¥ten Ã¥ koble til den.

Feilsøking basert på objektorientert programmering

Når problemet er identifisert og den mulige løsningen er foreslått, er det nødvendig å transkribere det til et programmeringsspråk slik at det kan utføres av en datamaskin ved bruk av et program. Under metodikken for objektorientert programmering er følgende trinn definert:

  • Definisjon av programmet: Det omhandler den skjematiske beskrivelsen av problemet, pÃ¥ en klar, forstÃ¥elig og veldefinert mÃ¥te. Det innebærer identifisering av opprinnelsen og aspektet av dataene som skal behandles, samt beskrivelse av resultatene og mÃ¥ten de blir presentert pÃ¥.
  • Objektorientert analyse og design: Henviser til identifisering og beskrivelse av objekter i problemdomenet. Deretter etableres attributtene, forholdene og metodene som skal følges, dette for Ã¥ definere klassene som skal implementeres i et bestemt programmeringssprÃ¥k.
  • Programmering: I utgangspunktet refererer det til transkripsjonen av programmet, som inkluderer korrekt skriving av koden pÃ¥ et programmeringssprÃ¥k, ved hjelp av en utviklingsstil som kan garantere produktets kvalitet, noe som vil føre til riktig løsning av problemet. Dette stadiet innebærer konstruksjon av algoritmer, utarbeidelse av flytdiagrammer og den endelige programmeringen, gjennomgÃ¥ skrivebordstester, koding, kompilering og utførelse av programmet.
  • Dokumentasjon: Den innebærer beskrivelse av trinnene som er nødvendige for Ã¥ oppnÃ¥ et problem. Det innebærer inkorporering av kommentarlinjer som tydeliggjør eller forklarer betydningen av kodelinjene som kan være forvirrende, spesielt de som refererer til identifikatorer og deklarerte datastrukturer, kontrollstrukturer og metoder og deres parametere. Dette stadiet er avgjørende for suksessen til det endelige produktet, for hvis dokumentasjonen mislykkes, er programmene vanskelige Ã¥ lese og feilsøke, og enda mer, endring og vedlikehold blir nesten umulig.

På en annen måte kan vi si at funksjonaliteten til programmeringsspråk har økt gjennom årene, hovedsakelig på grunn av utseendet til nye og varierte anvendelsesområder. Selv om det er sant at disse språkene i begynnelsen ble brukt til å håndtere store datamengder og utføre visse numeriske beregninger.

Nå brukes programmeringsspråk nesten i alle samfunnsfelt som inkluderer databaseadministrasjon, bildegenerering og til og med kunstig intelligens, blant mange andre aspekter.

Hovedsakelig har fødselen av nye software engineering -teknologier forårsaket økningen av programmeringsspråkene som vi vil se nedenfor.

Objektorientert programmeringsspråk

De er språk designet for å integrere data og applets i klasser. Disse kan arve egenskaper til andre transformerte koder og gi opphav til nye egenskaper, noe som også fører til en ny programmeringsmetodikk.

Klassifisering

Som vi vil se senere, er det flere programmeringsspråk som reagerer på det objektorienterte paradigmet. I henhold til måten de er implementert på, er de klassifisert som:

  • NÃ¥r de implementerer atferden: Den dekker sprÃ¥kene som er basert pÃ¥ klasser og pÃ¥ prototyper eller eksempler.
  • NÃ¥r de implementerer objektopprettelse: De er basert pÃ¥ utføringstiden i det dynamiske minneomrÃ¥det eller kompileringstiden for bunken.
  • I henhold til typekontroll: Henviser til kompilering av tidstidsverifisering eller kjøretidsverifisering.

Blant de viktigste objektorienterte språkene har vi:

hva-er-objektorientert-programmering

Småprat

Det kan bare programmeres under paradigmet til objektorientert programmering. Det er et klassebasert språk, som designer objekter i det dynamiske minneområdet ved kjøretid. Den utfører bare typekontroller ved kjøretid, det vil si at det er et dynamisk kontrollspråk.

Java

Det er et av de mest brukte språkene i dag, det er helt objektorientert, med syntaks som ligner C og C ++. Det er plattformuavhengig.

Som Smalltalk er det et klassebasert språk, som skaper objektene i det dynamiske minneområdet ved kjøretid, men ikke utfører typekontroller ved kjøretid, men snarere ved kompileringstid, med den forskjellen at det oppretter en mellomliggende ikke-kjørbar kode, kommer fra en forhåndskompilering. Dette gjør det til et statisk kontrollspråk.

Java objektorientert programmering de kjører på en virtuell maskin som er spesialisert på denne typen språk, som fungerer som om det var en datamaskin og derfor lar dem utføres uten å måtte endre dem. Denne typen maskiner er det som kalles tolk.

Objektorientert programmering

Javascript

I motsetning til Smalltalk og Java, er det et språk som er avhengig av prototyper eller eksempler. Det er tolket og uten typer, det vil si at det ikke utfører typekontroller verken ved kjøretid eller kompileringstidspunkt. Oppretter objekter i det dynamiske minneområdet ved kjøretid. Siden det mangler kompilering, blir det et dynamisk kontrollert språk.

Det er et kraftig språk, takket være dets bærbarhet og integrasjon, i tillegg til standard og enkle programmeringsteknikker. Med andre ord, JavaScript er en kode som er innebygd i en webside, hvis formål er å forbedre dynamikken på den siden.

C + +

Det utgjør en økning til det tradisjonelle C -språket ved å absorbere fordelene med dette språket og inkorporering av støtter for objekter. Selv om det omfatter tre forskjellige programmeringsparadigmer, for eksempel: strukturert programmering, generisk programmering og objektorientert programmering, var det han som ledet overgangen fra det strukturerte paradigmet til det objektorienterte paradigmet.

Det er et allsidig språk, som brukes veldig ofte blant programmerere, både i Windows og i GNU Linux. Oppretter objekter i dynamisk minne ved kjøretid. Det fokuserer i utgangspunktet på ytelse, bærbarhet og abstraksjon. Den største ulempen er at når du kompilerer, genereres en kjørbar fil hvis kode bare er gyldig for plattformen der samlingen ble utført. På den annen side, da det er et kjørbart språk, er det ikke plattformuavhengig.

C#

Det er et programmeringsspråk som kjører ved kjøretid og er inkludert i .NET -plattformen, som lar deg dele og gjenkjenne bibliotekene dine. Det er totalt objektorientert, det tillater opprettelse av alle slags applikasjoner.

Det utgjør en utvikling av språkene C og C ++, og eliminerer kompleksiteten til det siste, ettersom det er lettere å bruke og reduserer feilmarginen under driften, på grunn av aksept av forhåndskompilering.

Objektorientert programmering

Python

Det er et multiplattformspråk, hovedsakelig objektorientert, men det omfatter andre paradigmer som imperativ programmering, funksjonell programmering og aspektorientert programmering.

Den rene syntaksen, veldig nær det naturlige språket, favoriserer lesing av koden. Det anbefales på det sterkeste å begynne i programmeringsverdenen.

Det utføres gjennom et mellomprogram, det vil si gjennom en tolk. Fordi det er et halvtolket språk, er det fleksibelt og bærbart. Den er dynamisk skrevet, noe som betyr at datatypen bestemmes ved kjøretid.

Pascal

For tiden er det språket som brukes par excellence i undervisning i programmering. Den har en enkel syntaks, med et svært strukturert språk, som letter lesing og tolkning av programmene. Samlingen kan gjøres på hvilken som helst maskin som har en Pascal -kompilator.

Til tross for at det er et strukturert språk, tillater det objektorientert programmering gjennom Turbo Pascal-versjonen. Den har et integrert miljø, hvorfra det er mulig å skrive programmene og teste dem. Til syvende og sist er Pascal et generelt språk.

Hvis temaet som interesserer deg er relatert til programmering, inviterer jeg deg til å lese Hva er en algoritme i programmering?


Legg til som foretrukket kilde