John Keats Skrevet 26. mars 2005 Del Skrevet 26. mars 2005 Jeg har hørt mye snakk om objektorientert programmering, men har egentlig aldri forstått hva dette er.. Er det noen som har tid til og skrive en forklaring som sier hva det er, på en enkel måte? Lenke til kommentar
GenericName Skrevet 26. mars 2005 Del Skrevet 26. mars 2005 Klasser Objekt Arv Dynamisk binding Polimorfi Lenke til kommentar
GenericName Skrevet 26. mars 2005 Del Skrevet 26. mars 2005 Objekt orientert programmering var en norsk oppfinnelse. Keg kommer ikke på hva det er, men C var noe annet. Jeg kommer ikke på hva det heter Så lagde Bjarne C with Classes, som det fulgte med nye funksjoner. Litt dårlif forklart men Lenke til kommentar
A_N_K Skrevet 26. mars 2005 Del Skrevet 26. mars 2005 Jeg forklarte det relativt inngående i en tidligere tråd, et søk vil sikkert bringe den opp Lenke til kommentar
☀ ❄ Skrevet 26. mars 2005 Del Skrevet 26. mars 2005 (Jeg er vanligvis ikke snill nok til å gjøre slikt for folk, men siden jeg fant den frem da jeg rapporterte tråden kan jeg vel like gjerne poste den her: «Hva betyr egentlig Objektorientert programmering?») prog master: C er et prosessorientert (procedural) språk. For mer informasjon om C++s historie, og en del av designvalgene som er tatt, er The Design and Evolution of C++ («D&E») midt i blinken. Lenke til kommentar
hishadow Skrevet 26. mars 2005 Del Skrevet 26. mars 2005 Kort fortalt... Objektorientert programmering gjør det mulig å gruppere funksjoner og data sammen som en entitet. F.eks. for prosedyreorienterte språk er det vanlig å gjøre følgende: kontoliste = last_kontoliste_fra_database(); ... konto = finn_konto(kontoliste, "jan jensen") beløp = 200 kr trekk_fra_penger_fra_konto(konto, beløp) Med objektorientert språk vil det kunne se slik ut: Kontoregister.initialiser() ... konto = Kontoregister.finn_konto("jan jensen") beløp = 200 kr konto.trekk_fra_penger(beløp) + en haug annet, slik som arv og annet dritt. Lenke til kommentar
A_N_K Skrevet 26. mars 2005 Del Skrevet 26. mars 2005 (endret) hishadow: Så vidt jeg kan se belyser eksempelet ditt lite annet enn syntaksforskjeller. Det er vanlig å emulere OO i språk uten eksplisitt støtte for det, som C. Hvorvidt et program er objektorientert eller ikke bestemmes ikke av språket det er skrevet i. Klassisk prosedyrell tankegang tror jeg ville vært mer à la: konto.beløp -= 200 Dvs. at logikk relatert til denne klassen av objekter spres utover programmet istedenfor å isoleres i et fast sett med operasjoner (metoder). Når polymorfi kommer inn i bildet kan man heller ikke vite på forhånd hvilken funksjon metodekallet bindes til, og man ser den virkelige fordelen med objektorientering (løs kobling). Endret 26. mars 2005 av A_N_K Lenke til kommentar
hishadow Skrevet 26. mars 2005 Del Skrevet 26. mars 2005 Ikke ta dette for seriøst. Var ment som et eksempel... men trekk_fra_penger_fra_konto(konto, beløp) hjelper jo til å skjule strukturen til kontoen. Jeg ser hva du mener. Spredning av logikk kan jo egentlig sies å gjelde for objekter også, men på et mindre detaljnivå. Som programmerer vil vi jo ha større kontroll, men en tett sammenkobling vil fortsatt være der. I prakis er jo ikke objektorientert programmering om annet enn objekter, deres oppbygning og relasjonene mellom dem. Lenke til kommentar
A_N_K Skrevet 26. mars 2005 Del Skrevet 26. mars 2005 Med OO kommer man i alle fall et godt stykke på vei med å isolere ansvarsområder, selv om man fort finner ut at det ikke er noen sølvkule. Aspektorientert programmering (med kodeveving) er en interessant retning, men det er altså et supplement til OO. Lenke til kommentar
It's me Skrevet 28. mars 2005 Del Skrevet 28. mars 2005 Bruk søkefunksjonen. En tråd her handler om akuratt det samme. Denne stenges. Lenke til kommentar
Anbefalte innlegg