Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring

Liknende presentasjoner


Presentasjon om: "Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring"— Utskrift av presentasjonen:

1 Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
Vprg 3 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: Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring Else Lervik, januar 2012

2 Aggregering Poststed Student poststed -postnr {readonly}
-sted {readonly} -studnr * 1 +getPoststed() +getStudnr() +setPoststed() +setStudnr() +finnPostnr() +finnSted() Se på koden side EksempelStudent2.java +getPostnr() +getSted() Ett studentobjekt er koplet til eksakt ett poststedobjekt. Poststedobjektet spiller rollen poststed i denne sammenhengen. Dette blir navnet på en objektvariabel i klassen Student. Stjerna sier at ett og samme poststedobjekt er knyttet til mange studentobjekter. 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.

3 Komposisjon Navn Student navn -fornavn -etternavn -fdato {readonly} 1
+getFdato() +getNavn() +setNavn() +getFornavn() +getEtternavn() +setFornavn() +setEtternavn() Se på koden side EksempelStudent4.java Et bestemt navneobjekt tilhører eksakt ett bestemt studentobjekt. Hver student har kun ett navn. 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.

4 Aggregering, komposisjon og mutable objekter
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 Når komposisjon og når aggregering? Virkeligheten vi modellere bestemmer hvorvidt vi skal bruke det ene eller det andre. Jmf. Navn og poststed. (Tabeller inngår vanligvis i en komposisjon, dvs vi lager kopier.) Aggregering er mest vanlig.

5 En register-klasse Register registeret Utstyr 1 *
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).

6 Hvilke operasjoner bør en klient kunne gjøre i forhold til et register-objekt?
Klassen Utstyr er gitt. Programmer deler av klassen Register med enkel testklient. Register registeret Utstyr 1 * Finn antall typer forskjellig utstyr I regeisteret Lag en utstyroversikt Registrer ny utstyrstype Finn antall på lager av en bestemt type utstyr Endre lagerbeholdningen for en bestemt type utstyr Søke fram detaljinfo om en bestemt type utstyr

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 ) Gjennomgå SorterOgSoekArrayListJavaAPI.java (side )

8 Klassen Register Sortere arraylisten Naturlig orden
Java.util.Collections.sort(reg); // klassemetode Vil bruke den compareTo()-metoden som vi har laget i klassen Utstyr


Laste ned ppt "Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring"

Liknende presentasjoner


Annonser fra Google