Exercises in this lecture   Go to the notes, in which this exercise belongs -- Keyboard shortcut: 'u'   Alphabetic index   Course home      

Exercise 4.1
Programmering af klassen Rectangle


Denne opgave går ud på at programmere en klasse Rectangle. (En sådan klasse findes i forvejen i Java klassebiblioteket, men dette ignorerer vi i denne opgave). Et rektangel er et velkendt geometrisk objekt med en bestemt placering i et todimensionelt koordinatsystem. I denne opgave vil vi afgrænse os til at arbejde med rektangler, hvis sider er parallelle med akserne i koordinatsystemet. Antag også at vi arbejder med heltallige koordinater og dimensioner.

Start med at beslutte hvordan I vil repræsentere et rektangel. Datarepræsentationen skal være skjult for klienter af rektanglet.

Implementer følgende konstruktorer og metoder i Rectangle:

    En konstruktor som opretter et rektangel ud fra to hjørnepunkter: øverste venstre og nederste højre. En konstruktor som opretter et rektangel ud fra øverste venstre hjørne samt en bredde og en højde af rektanglet. En konstruktor som opretter et rektangel ud fra fire heltal: x og y koordinaterne af øverste venstre samt nederte højre hjørne Metoder width og height som returnerer bredde og højde af rektanglet En metode corners som returnerer et array af de fire hjørnepunkter af rektanglet En metode move der flytter rektanglet. Flytningen skal være relativ til den nuværende position. En metode overlappingRectangle der returnerer overlappet (i sig selv et rektangel) mellem to rektangler (se herunder). Metoden toString som udskriver en tekstuel og informativ streng om rektanglet
Under løsningen af denne opgave bedes I benytte klassen java.awt.Point som beskriver et punkt i den todimensionelle plan.

Det vanskeligste aspekt af klassen Rectangle er metoden overlappingRectangle. Det kan være en god hjælp at bruge klassen Interval (udviklet til formålet) hvori der findes en metode, der returnerer overlappet mellem to intervaller.

Dokumenter endvidere klassens konstruktorer og metoder, og producer HTML dokumentation ved brug af værktøjet javadoc.


Solution