Exercise index of this lecture   Alphabetic index   Course home   

Exercises
Objekt-orienteret programmering i Java, del 1


2.1   Modifikationer af Konto klassen  

Denne opgave tager udgangspunkt i programmet Babybank som vi allerede har set på ved forelæsningen.

Lav følgende ændringer i programmet:

    Tilføj en operation, som overfører et antal kroner fra een konto til en anden. Overvej omhyggeligt, hvad operationen skal hedde, og hvilke parametre den skal have Lav om på data repræsentationen i klassen Konto, således at vi nu repræsenterer kontoens tilstand som en liste (array) af transaktioner. Hvis kontoen i starten indeholder 0 kroner repræsenterer transaktionerne

      indsæt(100), hæv(50), indsæt(10)

    således en konto med 60 kroner. Det er tilladt at ændre på de private egenskaber af klassen Konto, men ingen offentlige egenskaber må ændres!

Download Babybank programmet via ovenstående link, implementer ændringerne, og få programmet til at virke. Hovedprogrammet i min udgave af programmet skal køre uændret efter ændringerne.

I har behov for at bruge Arrays (eller lignende) i denne opgave. Vi har endnu ikke set på dette emne i stor detalje, men jeg har lavet et kort demonstrationsprogram, som viser hvordan man bruger arrays. Vi vender lidt senere i kurset tilbage til arrays og lister.

 

Solution


2.2   Klassen Spillekort  

Et kortspil består af 52 kort fordelt på fire farver (betegnet hjerter, ruder, klør og spar) og 13 værdier (fra 1 til 10 samt knægt, dronning og konge).

Skriv en klasse Spillekort, som repræsenterer et enkelt kort i et kortspil. Datarepræsentation skal være privat i klassen.

Vi ønsker at bruge instanser af Spillekort i spil, hvor kortene skal sammenlignes størrelsesmæssigt med andre kort. Derfor skal der være operationer størreEnd, ligMed og mindreEnd i klassen. Sammenligningen af to kort beror udelukkende på kortets værdi; farven spiller altså ingen rolle. Vi ønsker følgende orden, hvor to er mindst og es er størst:

     2 < 3 < ... < 9 < 10 < knægt < dronning < konge < 1

Redefiner metoden toString fra Object til at returnere en tekst streng, som identificerer et spillekort entydigt i forhold til de andre spillekort, f.eks. 'klør 5' og 'spar es'.

Programmer en eller flere konstruktorer i klassen Spillekort, således at instantiering af et helt kortspil (52 kort) bliver så let som mulig (se herefter).

Skriv dernæst et program, som konstruerer et komplet spil kort bestående af 52 kort. Med andre ord, ønsker vi at programmet laver 52 objekter af klassen Spillekort. Vi ønsker ikke at skulle skrive 52 kald af new Spillekort(...) efter hinanden med forskellige parametre; det vil naturligvis være særdeles hensigtsmæssigt at kunne foretage instantieringen i en løkke. En forudsætning for at kunne gøre dette er en hensigtsmæssigt valgt Spillekort konstruktor. Organiser kortspillet i et array.

 

Solution


2.3   Lighed mellem bankkonti  

I denne opgave arbejder vi videre på babybank som tidligere i denne lektion har været under behandling i en opgave.

Tilføj en metode equals, der angiver at to bankkonti er ens hvis følgende betingelser er opfyldt:

    Saldoerne er ens Ejerne har samme navn - dog således at navne stavet med stort og småt opfattes som værende ens ("Peter" = "peter" = "PETER")
Metoden equals er defineret i klassen Object, hvorfra alle klasser arver. Læs API dokumentationen af equals i forbindelse med løsningen af denne opgave.

Lav en klasse med en main metode, som laver to konti. Prøvekør programmet med det formål at teste om equals virker efter specifikationen.

 

Solution


Generated: Monday March 31, 2008, 12:08:03
on the system cs-unix