Indholdsfortegnelse:
Video: From C to Python by Ross Rheingans-Yoo 2025
Java er objektorienteret. Hvad betyder det? I modsætning til sprog, som FORTRAN, der fokuserer på at give computeren afgørende "Do this / Do that" kommandoer, fokuserer objektorienterede sprog på data. Selvfølgelig fortæller objektorienterede programmer computeren, hvad de skal gøre. De starter dog ved at organisere dataene, og kommandoerne kommer senere.
Objektorienterede sprog er bedre end "Gør dette / Gør det" sprog, fordi de organiserer data på en måde, der gør det muligt for folk at gøre alt sammen med det. For at ændre dataene kan du bygge videre på det, du allerede har, i stedet for at skrabe alt, hvad du har gjort, og begynde hver gang du skal gøre noget nyt. Selvom computerprogrammører generelt er kloge mennesker, tog de et stykke tid for at finde ud af det.
Objekter og deres klasser
I et objektorienteret sprog bruger du objekter og klasser til at organisere dine data.
Forestil dig at du skriver et computerprogram for at holde styr på husene i en ny ejerlejlighedskonstruktion (stadig under opførelse). Husene adskiller sig kun lidt fra hinanden. Hvert hus har en karakteristisk sidesporfarve, en indendørs malingfarve, et køkkenskabsstil og så videre. I dit objektorienterede computerprogram er hvert hus et objekt.
Men objekter er ikke hele historien. Selvom husene adskiller sig lidt fra hinanden, deler alle husene samme egenskabsliste. For eksempel har hvert hus et kendetegn kendt som sidesporfarve. Hvert hus har et andet kendetegn kendt som køkkenskabsstil. I dit objektorienterede program har du brug for en masterliste, der indeholder alle de egenskaber, som et husobjekt kan besidde. Denne mesterliste over karakteristika kaldes en klasse.
Så der har du det. Objektorienteret programmering er misnavnet. Det skal virkelig kaldes "programmering med klasser og objekter. "
Bemærk at ordet klasser blev opført først? Tænk igen om en boligudvikling, der er under opførelse. Et eller andet sted på partiet er en mesterliste over karakteristika kendt som en blueprint i en uhyrlig trailer, der er parkeret på bare snavs. En arkitekts plan er som en objektorienteret programmørklasse. En tegning er en liste over egenskaber, som hvert hus vil have. Tegningen siger, "sidespor. "Det faktiske husobjekt har grå sidespor. Tegningen siger, "køkkenskab. "Det egentlige husobjekt har Louis XIV køkkenskabe.
Et år efter at du har lavet tegningen, bruger du den til at bygge ti huse. Det er det samme med klasser og objekter. For det første skriver programmøren kode for at beskrive en klasse. Så når programmet kører, opretter computeren objekter fra klassen (tegning).
Så det er det reelle forhold mellem klasser og objekter. Programmeringen definerer en klasse, og fra klassedisplayet fremstiller computeren individuelle objekter.
Hvad er så godt med et objektorienteret sprog?
Forestil dig at du allerede har skrevet et computerprogram for at holde styr på bygningsinstruktionerne for huse i en ny udvikling. Så beslutter den store chef om en ændret plan - en plan, hvor halvdelen af huse har tre soveværelser, og den anden halvdel har fire.
Hvis du bruger den gamle FORTRAN / C-stil til computerprogrammering, ser dine instruktioner sådan ud:
Grav et grøft i kælderen.
Læg betong omkring grøftens sider.
Sæt to-fire-fours langs sidene til kælderrammen.
…
Dette ville være som en arkitekt, der skaber en lang liste over instruktioner i stedet for en blueprint. For at ændre planen skal du sortere gennem listen for at finde vejledningen til at opbygge soveværelser. For at gøre tingene værre kunne instruktionerne spredes blandt siderne 234, 394-410, 739, 10 og 2. Hvis bygherren skulle dechiffrere andre folks komplicerede instruktioner, ville opgaven være ti gange sværere.
Begyndende med en klasse er imidlertid som at starte med en blueprint. Hvis du beslutter dig for at have både tre- og fire-værelses huse, kan du starte med en tegning kaldet hus plan, der har en stueetage og en anden etage, men har ingen indendørs vægge tegnet på anden sal. Derefter laver du to andre etage-tegninger - et til tre-værelseshuset og et andet til fire-værelseshuset. (Du kalder disse nye tegninger på 3-værelses hus blueprint og fire-værelses hus blueprint.)
Dine builderkolleger er forbløffet over din logik og organisation, men de har bekymringer. De stiller spørgsmål. "Du kaldte en af tegningerne til 'tre-værelses hus' blueprint. Hvordan kan du gøre dette, hvis det er en plan for en anden etage og ikke for et helt hus? "
Du smiler bevidst og svarer," Tre-værelses hus-planen kan sige: 'For information om de nederste etager, se den oprindelige husblok. "På den måde beskriver tre-værelses husblanken et helt hus. Huset med fire soveværelser kan sige det samme. Med denne opsætning kan vi udnytte alt det arbejde, vi allerede har gjort for at oprette det originale husbloktryk og spare mange penge. ”
I det objektorienterede programmerings sprog er de tre- og fire-værelses husklasser arve funktionerne i den oprindelige husklasse. Du kan også sige, at de tre- og fire-værelses husklasser er forlængende den oprindelige husklasse.
Den oprindelige husklasse kaldes superklasse af de tre- og fire-værelses husklasser.I denne vene er de tre- og fire-værelses husklasser underklasser i den oprindelige husklasse. På en anden måde kaldes den oprindelige husklasse klassen forældreklasse af tre- og fire-værelses husklasser. De tre-og fire-værelses hus klasser er børneklasser af den oprindelige hus klasse.
Det er overflødigt at sige, at dine hjemmebyggende kolleger er jaloux. En masse hjemmebyggere er mobbende omkring dig for at høre om dine gode ideer. Så i det øjeblik slipper du en mere bombeskal: "Ved at lave en klasse med underklasser kan vi genbruge blækpatronen i fremtiden. Hvis nogen kommer sammen og ønsker et fem-værelses hus, kan vi udvide vores oprindelige husblok ved at lave et fem-værelses husblok. Vi bliver aldrig nødt til at bruge penge til et originalt husbloktryk igen. "
" Men ", siger en kollega i den bageste række," hvad sker der, hvis nogen ønsker et andet første etage design? Spilder vi det oprindelige husbloktryk eller begynder at scrible over den oprindelige plan? Det koster store penge, vil det ikke? "
I en selvsikker tone svarer du:" Vi behøver ikke at rote med det oprindelige husblok. Hvis nogen ønsker en jacuzzi i stuen, kan vi lave en ny, lille tegning, der kun beskriver den nye stue og kalder dette Jacuzzi-i-stuen hus blåtryk. Derefter kan denne nye tegning henvise til det oprindelige husblæk for information om resten af huset (den del der ikke er i stuen). "På det objektorienterede programmerings sprog udbygger boblebjælke-i-stuen husbloksten stadig det originale husblok. Jacuzzi-planen er stadig en underklasse af det oprindelige husblok. Faktisk gælder al terminologien om superklasse, forældreklasse og barneklasse stadig. Det eneste der er nyt er, at Jacuzzi-planen overstyrer stuen i den oprindelige husblok. I dagene før objektorienterede sprog oplevede programmeringsverdenen en krise i softwareudvikling. Programmører skrev kode, så opdagede nye behov, og så måtte deres papirkurv skifte og starte fra bunden. Dette skete igen og igen, fordi den kode, som programmørerne skrev, ikke kunne genbruges. Objektorienteret programmering ændret alt dette til det bedre.