Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Excerpt

Denne oppgaven hander om et grensnitt (interface) for person-navn og hvordan slike implementeres og sorteres med grensesnittet Comparator.

I arbeid

I denne oppgaven tar vi utgangspunkt i en Person-klasse som har et navn (String) bestående av fornavn og etternavn.

Del 1

Definer et grensesnitt Named med innkapslingsmetoder for fornavn, etternavn og fulle navn. 

 

Del 2

Lag en Person-klasse som implementerer grensesnittet NamedPerson-klassen kan ha enten ett eller to felter for personnavnet avhengig av hva man finner enklest. Man kan anta at brukere oppretter Person-objekter med gyldige navn.

 

Del 3

--------------------------------

Resten er foreløpig sakset fra Card-oppgaven...

Vi tar i denne oppgaven utgangspunkt i en Card-klassen fra kortoppgaven om objektstrukturer. Et Card-objekt har en kortfarge (av typen char) og verdi (int), og sortering gjøres på disse verdiene, ved at en først sorterer på kortfarge og så på verdi. Siden Java har sortering innebygget, så trenger vi ikke bry oss om selve sorteringsalgoritmen, men fokuserer her på logikken for sammenligning av Card-objekter.

Del 1

La Card-klassen implementere Comparable med følgende sammenligningslogikk

  • compareTo-metoden skal sammenligne et kort med et annet, slik at spar vurderes som høyere enn hjerter, hjerter høyere enn ruter og ruter høyere enn kløver. Ved lik kortfarge skal verdien brukes, altså 1 (ess) er mindre enn 2 er mindre enn 3 osv. til og med 11 (knekt), 12 (dame) og 13 (konge).

Del 2

For å kunne sortere Card-objekter med annen logikk, så kan bruke grensesnittet Comparator, som er et objekt som kan sammenligne objekter parvise, typisk de som skal sorteres. Implementer en Comparator (dvs. lag en klasse som implement Comparator) kalt CardComparator, som kan konfigureres (stilles inn) til å sortere med ess som høyeste kort og med en bestemt kortfarge som trumf, altså en kortfarge som regnes som høyere enn de andre

...