Object vs Instance
Object Oriented Programming (OOP) er et av de mest populære programmeringsparadigmene. I OOP er fokuset på å tenke på problemet som skal løses i form av elementer fra den virkelige verden og representere problemet i form av objekter og deres oppførsel. Mange programmeringsspråk som støtter nøkkelaspekter ved OOP (k alt OOP-språk) har klassen som hovedprogrammeringsverktøy. De kalles klassebaserte. Klasser er en abstrakt representasjon av objekter i den virkelige verden. Klasser har egenskaper som kalles attributter. Attributter implementeres som globale og instansvariabler. Metoder i klassene representerer eller definerer oppførselen til disse klassene. Metoder og attributter til klasser kalles medlemmene av klassen. Enkelt sagt er en klasse en blåkopi eller en mal for et spesifikt objekt fra det virkelige liv. Så, et objekt er minneblokken(e) som brukes til å lagre nødvendig informasjon i henhold til denne planen. Forekomst er en minneblokk som refererer til et objekt.
Hva er et objekt?
Objekter er resultatet av instansiering av en klasse. Instantiering er prosessen med å ta blåkopi og definere hver egenskap og atferd slik at det resulterende objektet faktisk representerer et virkelig objekt. Objekt er en dedikert og kontinuerlig blokk med minne som er allokert til å lagre informasjon som variabler, metoder eller funksjoner osv. Objekt lages ved bruk av ny operatør, i programmeringsspråket Java. For eksempel, hvis det er en klasse som heter Bil, kan følgende brukes til å lage et objekt av Bil-klassen.
ny bil();
Her opprettes et bilobjekt av den nye operatøren og en referanse til objektet returneres. Den nye operatøren sammen med konstruktøren av Car-klassen brukes til å lage det nye objektet. Levetiden til objektet starter fra kallet til konstruktøren til det blir ødelagt. Når en gjenstand ikke er henvist, vil den bli fjernet/destruert av søppelsamleren.
Hva er en forekomst?
Forekomst er en minneblokk som inneholder referansen til et objekt. Med andre ord vil Instance beholde adressen til startminneblokken der objektet er lagret. Faktisk kan navnet på forekomsten brukes for å få tilgang til starten av objektminneområdet. Forskyvninger fra startminnet beregnes av kjøretidsmotoren slik at vi kan gå dit de individuelle dataene eller metodereferansene er lagret. Følgende Java-kodeklipp kan brukes til å lage en forekomst av et bilobjekt.
Car myCar=ny bil();
Som nevnt ovenfor, oppretter den nye operatøren Bil-objektet og returnerer referansen til det. Denne referansen er lagret i biltypevariabelen myCar. Så, myCar er forekomsten av bilobjektet som er opprettet.
Hva er forskjellen mellom et objekt og en instans?
Objekt er en sammenhengende minneblokk som lagrer den faktiske informasjonen som skiller dette objektet fra andre objekter, mens en instans er en referanse til et objekt. Det er en minneblokk som peker til stirrende adressen til hvor objektet er lagret. To instanser kan referere til samme objekt. Levetiden til et objekt og en instans er ikke relatert. Derfor kan en forekomst være null. Når alle forekomster som peker på et objekt er fjernet, vil objektet bli ødelagt.