Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Mer om programmering av aggregeringer Repetisjon: Komposisjon og aggregering En register-klasse: modellering En register-klasse: implementering Sortering.

Liknende presentasjoner


Presentasjon om: "Mer om programmering av aggregeringer Repetisjon: Komposisjon og aggregering En register-klasse: modellering En register-klasse: implementering Sortering."— Utskrift av presentasjonen:

1 Mer om programmering av aggregeringer Repetisjon: Komposisjon og aggregering En register-klasse: modellering En register-klasse: implementering Sortering og søking LC191D Videregående programmering Semesterplan: http://aitel.hist.no/fag/vprg/index_LC191D.php Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring Else Lervik, januar 2012

2 Aggregering En aggregering er en en-del-av-sammenheng mellom objekter. Ett objekt består av et eller flere andre objekter. De objektene som aggregatet består av, kan leve både før og etter aggregatet, og omverden har tilgang til disse objektene. Aggregatet vet alltid hvilke objekter det består av. Forelesning 3, side 2 1* poststed Student -studnr +getPoststed() +getStudnr() +setPoststed() +setStudnr() +finnPostnr() +finnSted() Poststed -postnr {readonly} -sted {readonly} +getPostnr() +getSted() Se på koden side 355-356 EksempelStudent2.java

3 Komposisjon En komposisjon er også en en-del-av-sammenheng mellom objekter, men her har vi en mye sterkere binding mellom objektene enn for aggregering. Omverden har ikke tilgang til de objektene som er gjemt inne i det sammensatte objektet (kompositten). Livet til disse objektene er like langt eller kortere enn livet til det sammensatte objektet. Forelesning 3, side 3 11 navn Student -fdato {readonly} +getFdato() +getNavn() +setNavn() Navn -fornavn -etternavn +getFornavn() +getEtternavn() +setFornavn() +setEtternavn() Se på koden side 364-365 EksempelStudent4.java

4 Aggregering, komposisjon og mutable objekter Aggregering Ved aggregering lager vi ikke kopier av objektene – det er ofte i samsvar med virkeligheten Potensielt problem Mange referanser til samme objekt. Lett å miste oversikten. Mulige løsninger Bruk immutable objekter hvis mulig. Bruk pakketilgang for å beskytte objekter (se kap. 11.7, side 379) Komposisjon Kompositten skal ha sine egne utgaver av objektene I praktisk programmering av komposisjon nøyer vi oss imidlertid med enkelteksemplarer av immutable objekter, da ingen kan ødelegge disse uansett Forelesning 3, side 4

5 En register-klasse Vi skal lage klasser for å administrere uttak av kontorrekvisita og -utstyr i en bedrift. Registeret skal omfatte alt fra blyanter, viskelær og opp til stoler og bord. Vi håndterer imidlertid alt utstyr på samme måte. Om hver utstyrsvariant lagrer vi betegnelse (navn), leverandør, hvor mye som er på lager (varebeholdning) nedre grense for bestilling (dersom lagerbeholdningen går under denne verdien, skal varen opp på bestillingslisten). Forelesning 3, side 5 *1 registeret Register Utstyr

6 Hvilke operasjoner bør en klient kunne gjøre i forhold til et register- objekt? Forelesning 3, side 6 *1 registeret Register Utstyr Klassen Utstyr er gitt. Programmer deler av klassen Register med enkel testklient.

7 Sortering av objekter. Søking blant objekter. Objektene ligger i en tabell eller i en ArrayList To typer sorteringsrekkefølger for objekter Sortering i henhold til objektenes naturlige orden Definert i metoden compareTo() som er implementasjonen av interfacet Comparable. Likhet med compareTo() bør bety det samme som likhet med equals() Sortering i henhold til en rekkefølge definert i en klasse som implementerer interfacet Comparator. Spesielt eksisterer det en Comparator-klasse som vi kan bruke hvis vi ønsker å sortere tekster i henhold til norsk tegnsett. Søking lineært søk binærsøk, forutsetter at objektene er sortert Søke- og sorteringsmetoder i Java-API-et etter objektenes naturlige orden eller Comparator-objekt som argument til sorteringsmetoden Gjennomgå SorterOgSoekTabellerJavaAPI.java (side 412-413) Gjennomgå SorterOgSoekArrayListJavaAPI.java (side 426-427) Forelesning 3, side 7


Laste ned ppt "Mer om programmering av aggregeringer Repetisjon: Komposisjon og aggregering En register-klasse: modellering En register-klasse: implementering Sortering."

Liknende presentasjoner


Annonser fra Google