Video: DAT100 video 1: Introduksjon til klasser og objekter 2025
Objektorientert programmering er en type dataprogrammering - for eksempel Java - basert på premisset at alle programmer er i hovedsak datamaskinbaserte simuleringer av virkelige objekter eller abstrakte konsepter. For eksempel:
-
Flight-simulatorprogrammer forsøker å etterligne virkemåten til ekte fly.
-
Mange dataspill er simuleringer av faktiske spill som mennesker spiller, for eksempel baseball, NASCAR racing og sjakk.
-
Selv forretningsprogrammer kan betraktes som simuleringer av forretningsprosesser, for eksempel bestilling, kundeservice, frakt og fakturering.
Objekter er programmeringsenheter som har visse grunnleggende egenskaper:
-
Identitet: Hvert objekt i et objektorientert program har en identitet . Med andre ord, hver forekomst av en bestemt type objekt -an eksempel - kan skille seg fra hver annen forekomst av samme type objekt, så vel som fra objekter av andre typer.
Hver objekteksempel har sin egen plassering i datamaskinens minne. Således kan to objekter, selv om de kan være av samme type, ha sine egne forskjellige minnesteder. Adressen til startstedet for et objekt gir en måte å skille mellom ett objekt fra et annet fordi ingen to objekter kan okkupert på samme sted i minnet.
Java beholder hvert objekts identitet ganske mye for seg selv. Det er med andre ord ingen enkel måte å få minnesadressen til et objekt på; Java viser at det ikke er noe av din bedrift, og med rette det. Hvis Java gjorde denne informasjonen lett tilgjengelig for deg, ville du bli fristet til å tinker med det, noe som kan forårsake alle slags problemer, som noen C eller C + + programmerer kan fortelle deg.
Java-objekter har noe som heter hashkode, som er en int-verdi som automatisk genereres for hvert objekt, og nesten representerer objektets identitet. I de fleste tilfeller er hash-koden for en gjenstand basert på objektets minneadresse, men ikke alltid. Java garanterer ikke at to forskjellige objekter ikke har samme hash-kode.
Når det brukes med objekter, tester likhetsoperatøren (==) faktisk identiteten til to variabler eller uttrykk. Hvis de refererer til samme objektinstans, anses de to variablene eller uttrykkene like.
-
Type: Objektorientert programmering lar deg tildele navn til ulike typer objekter i et program. I Java definerer klasser typer. Derfor, når du lager et objekt fra en type, sier du at objektet er av typen som er oppgitt av klassen.Følgende eksempeloppgave lager et objekt av typen Faktura:
Faktura i = Ny Faktura ();
I dette tilfellet er identiteten til dette objektet (det vil si adressen i minnet) tilordnet variablen i, som kompilatoren vet kan ha referanser til objekter av typen Faktura.
-
Stat: Selv om hver forekomst av en gitt objekttype har de samme attributter, har hver forekomst en annen tilstand: det vil si en annen kombinasjon av verdier for hver av dens attributter.
Selv om noen attributter av en gjenstand er offentlige, kan andre være private. De private attributter kan være avgjørende for objektets indre drift, men ingen utenfor objektet vet at de eksisterer. De er som dine private tanker: De påvirker hva du sier og gjør, men ingen kjenner dem, men deg.
-
Oppførsel: En annen egenskap for objekter er at de har oppførsel, , noe som betyr at de kan gjøre ting. Som tilstand, avhenger den spesifikke oppførselen til et objekt av typen. Til forskjell fra staten er adferd ikke forskjellig for hver forekomst av en type.
Anta at alle elevene i et klasserom har kalkulatorer av samme type. Be dem alle til å trekke ut kalkulatorene og legge til to tall. Alle kalkulatorene viser et annet tall, men alle legger til på samme måte; det vil si at de alle har en annen stat, men den samme oppførselen.
En annen måte å si at objekter har oppførsel på, er å si at de tilbyr tjenester som kan brukes av andre objekter. Du har sannsynligvis allerede sett mange eksempler på objekter som gir tjenester til andre objekter. Objekter opprettet fra NumberFormat-klassen, for eksempel, gir formateringstjenester som setter numeriske verdier i pent formaterte strenger, for eksempel $ 32. 95.
I Java er oppførselen til et objekt gitt av dets metoder. Dermed er formatmetoden til NumberFormat-klassen hva som gir formateringsadferdigheten for NumberFormat-objekter.
