Objekt (datalogi): Forskelle mellem versioner

Content deleted Content added
JAnDbot (diskussion | bidrag)
m robot Tilføjer: cs:Instance třídy
Større udvidelse med analyse og designobjekter samt generel definition
Linje 1:
Et '''objekt''' i [[datalogi]] er en basal enhed, der danner grundlag for [[objektorienteret analyse og design]] samt [[objektorienteret programmering]].
I [[objektorienteret programmering]] er et '''objekt''' en variabel, der er oprettet på baggrund af en [[klasse (datalogi)|klasse]]. Objektet omfatter en række felter, som kan være af forskellige typer. Felterne kan indeholde referencer til andre objekter eller de kan indeholde simple værdier som tal. I et objekt er der direkte adgang til de metoder (funktioner), der er definerede for klassen. En metode kan arbejde med de felter, der er defineret i klassen, og vil bruge værdier fra det aktuelle objekt ud over eventuelle parametre.
 
==Grundlæggende definition==
Et objekt defineres som en helhed med:
* en identitet,
* en tilstand og
* en adfærd.
 
På grund af identiteten kan to objekter til enhver tid skelnes fra hinanden, også hvis de i øvrigt ligner hinanden. Objektets tilstand beskriver egenskaber i for af [[attribut]]ters værdier. Endelig beskriver adfærden de påvirkninger (af tilstanden), som objektet har været ude for eller kan komme ud for.
 
Objekter kommunikerer med hinanden på den måde, at et objekt kan sende en [[besked]] til et andet objekt. Beskeden vil ofte gå ud på at få modtageren til at foretage handlinger (adfærd) på sig selv, hvilket også kan omfatte kommunikation med andre objekter. Når modtageren har afsluttet sin handling, leverer den et svar tilbage til afsenderen.
 
Normalt er man imidlertid ikke interesseret i at behandle og beskrive hvert enkelt objekt, men bruger i stedet [[klasse (datalogi)|klasse]]-begrebet. En klasse er her en beskrivelse af en mængde af ensartede objekter.
 
==Objekter i analyse==
Analyse går ud på for systemudviklerne at skaffe sig en forståelse af det [[domæne]], som de skal lave it-systemet til. I den forbindelse finder de objekter fra domænet, idet man betragter den virkelige verden som en enorm samling objekter (fysiske og abstrakte), der spiller sammen om at få udført en række arbejdsopgaver. Det er nu systemudviklernes opgave, dels at identificere interessante objekter, dels at gruppere disse objekter, så de kan beskrives med klasser.
 
Som eksempel kan man bruge domænet et [[bibliotek]]. Heri er der en lang række objekter, da hver eneste bog og øvrige udlånsmaterialer hver for sig kan opfattes som objekter. Det samme gælder alle lånere, der er registreret i biblioteket. Endvidere kan man vælge at opfatte hvert enkelt udlån som et objekt.
 
I eksemplet er f.eks. bogen "''Syv aldres galskab''" af [[Svend Åge Madsen]] et objekt og den tilhørende klasse kunne kaldes "bog". Det er op til udviklerne at finde frem til, hvilke egenskaber ved objekter fra "bog"-klassen, der er relevante for det system, der skal udvikles. Opgaven løses typisk ved at konferere med domæneeksperter, her bibliotekarer, og sammenholde deres oplysninger med de overordnede rammer for udviklingen af systemet.
 
Udviklerne vil altså normalt ikke fokusere på det enkelte objekt, men vil bruge dem i begrænset omfang som hjælp frem mod målet med at skabe en [[klassemodel]]. [[UML|Unified Modeling Language]] (UML) gør det også muligt at tegne objektdiagrammer, men de anvendes kun sjældent i praksis.
 
==Objekter i design==
I design nærmer systemudviklerne sig programmeringen, og designopgaven går ud på at beskrive det kommende it-system på en måde, så programmet kan skrives uden alt for store overvejelser.
 
Objektorienteret design baserer sig på den klassemodel af domænet, der er skabt i analysen. For at beskrive it-systemet må denne model suppleres med beskrivelser af en række it-specifikke objekter, også her i form af klasserne.
 
Der vil i det kommende program være behov for objekter, der skaber kommunikation mellem brugeren og domænemodellen, og der vil være behov for at sikre objekternes overlevelse på en [[disk]] eller lignende, oftest i en [[database]] blot for at tage enkelte eksempler. Til det formål beskriver udviklerne en lang række klasser, der gør det muligt at løse de nødvendige arbejdsopgaver med det kommende system.
 
Eksempler på design-objekter:
*Objekter i brugergrænsefladen, f.eks. vinduer, [[liste (datastruktur)|menuer]], indtastningsfelter og knapper.
*Objekter til håndtering af datasikkerheden, f.eks. [[kryptering]] af følsomme data.
*Objekter til kommunikation med en database, f.eks. oprettelse af en ny databasepost og læsning af en eksisterende post.
*Objekter til netværkskommunikation.
 
==Objekter i programmering==
I [[objektorienteret programmering]] er et '''objekt''' en variabel, der er oprettet som en konkret baggrundforekomst af en [[klasse (datalogi)|klasse]]. Objektet omfatter en række felter (attributter), som kan være af forskellige typerdatatyper. Felterne kan indeholde referencer til andre objekter, eller de kan indeholde simple værdier som tal. I et objekt er der direkte adgang til de metoder (funktioner), der er definerededefineret for klassen. En metode kan arbejde med de felter, der er defineret ifor objektet ved hjælp af klassen, og vil bruge værdier fra det aktuelle objekt ud over eventuelle parametre.
 
{{It-stub}}