12. juni 2013 - 13:27Der er
15 kommentarer og 1 løsning
abstract datatypes - definition
Leder efter en simpel definition på "abstract datatypes", altså en forklaring der er til at forstå. Hvad kendetegner "Abstract datatypes" osv.?
Ved godt hvilke abstakte datayper der findes, såsom: List, Sets, Maps, Queue, Deque, stacks og trees.
Og hvilke operationer og funktioner de har, men selve definitionen på hvad det er i en større helhed er jeg ikke sikker på. Håber at nogen kan komme med en god lille forklaring på dette.
Et kort bud ku være: En datatype kan anses som abstrakt, når den: 1. er defineret i forhold til de operationer der kan udføres på den - dvs. at evt. members er skjulte/private 2. dens implementation er skjult, så det er muligt at erstatte én implementation med en anden.
Er det korrekt at sige at en "Abstract type" er en samling af forskellige "operations" og "types" (f.eks. primitive typer som int) der sammen udgør en ny "datatype". Det er en slags "custom made datatype".
Andre kilder angiver en definition som vel kan opsummeres til "en Java klasse som er paen objektorienteret kode med god indkapsling af implementation".
Imidlertid passer 99.9% af de eksempler som angives med en betydeligt snaevre definition "et generisk Java interface".
Saa mit raad er: kig i din laerebog og brug dens definition, hvis det ikke er muligt saa tag wiki definition og lev med dens manglende praecision.
Okay jeg har fået skrevet en slags definition på ADT nu. Vil bare lige høre om det nu er "korrekt" det jeg har skrevet, for er lidt i tvivl ud fra hvad jeg har læst de forskellige steder, men synes da selv det giver mening.
En "Abstract type" (ADT) er en samling (collection) af bestemte data med bestemt sæt operationer. ADT kan bl.a. gemme, hente og manipulere disse data. ADT benytter/implementerer "Collection Interface", som igen har disse "sub interfaces": - List - Queue - Deque - Set - Map - Stacks - Trees Hver af disse sub interfaces, har forskellige data strukturer, som er nyttige på hver deres måde.
Så det ville være mere korrekt at skrive at de fleste ADT'er er collections?
Har noget andet som jeg er lidt i tvivl om. Hvorfor er det smart at bruge interfaces? Har brugt det i små programmer, for prøve det af, men kan simpelthen ikke se hvorfor jeg skulle bruge det og hvad det egentlig er interfacen sørger for, har du et godt svar på det ? :)
hvad mener du med 100% kontrakt? Og hvad er det der sker i : MitInterface o = new MinKlasse(); ? Er det din interface der bliver sat lig med en klasse? troede kun at interfaces kunne implementeres af en klasse og ikke initialiseres på nogen måde.
(forudsat at MinKlasse implementerer MitInterface)
o er en instans af MinKlasse, men fordi den kun er erklaeret som MitInterface, saa kan du kun bruge metode fra MitInterface (kontraken) og ikke diverse implementations specifikke metoder i MinKlasse.
Jeg tror ikke han går op i det, så nu lukker jeg bare spørgsmålet.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.