02312 Indledende programmering, IMM DTU, Ver. 2003-10-27
Opgaver til 5. semester-uge.
Anbefalet løsningsrækkefølge af opgaverne: 20, 19,
Opgave
19: punkter.
Denne opgave omhandler klasser, der repræsenterer
punkter ved at implementere følgende interface:
interface
PointInterface
{
//flytter
punktet stykket dx i x-retningen og dy i y-retningen
public void
move(int
dx,
int
dy);
}
Spm. 1:
Lav en klasse Point, der implementerer interfacet ved at repræsentere
punkter ved deres x- og y-koordinater.
Udover at implementere metoden fra interfacet, skal
klassen have en konstruktør med
følgende signatur: Point(int, int) og metoder med følgende signaturer: String
toString()
og boolean equals(Point).
Vink: Lad
metoden toString formatere punktet som
en streng på formen (x,y).
Spm. 2: Giv
i ord (ej i Java) et forslag til en anden implementering af interfacet.
Spm. 3: Betragt
følgende program, som bruger Point klassen:
public class
TestPoint
{
public static void
main (String[] args)
{
Point p1 = new
Point(5,10);
Point p2 = new
Point(5,10);
udskrivpunkter(p1,
p2);
p1.move(2,2); udskrivpunkter(p1, p2);
p1 = p2; udskrivpunkter(p1, p2);
p1.move(2,2); udskrivpunkter(p1, p2);
}
static void
udskrivpunkter(Point
p1, Point p2)
{
System.out.println("p1’s koordinater
er " + p1);
System.out.println("p2’s koordinater
er " + p2);
System.out.println("p1
== p2: " + (p1 == p2));
System.out.println("p1.equals(p2): " + p1.equals(p2) +
"\n");
}
}
Tegn figurer, der illustrerer, hvad lagerets indhold
er på de fire udskrivningstidspunkter.
Hvad er uddata fra programmet? (Svar først på spørgsmålet uden at køre programmet, så kan du bagefter køre og teste, om du svarede rigtigt.)
Opgave 19B:
Løs programming projects 6.4 side 365 i lærebogen..
Forklar endvidere hvad det betyder, at klassen nu: 'Implements the Comparable interface'.
Opgave 19C:
Løs programming projects 6.9 side 366 i lærebogen.
Opgave
20: biler.
Hver bil i et bilregister har følgende data:
Hvis man har en bil i registret, skal kan man kunne:
Spm. 1: Lav
en klasse Bil, der repræsenterer biloplysninger og har metoder til at udføre operationer,
Spm. 2: Lav
en klasse TestBil,der opretter nogle bilobjekter, sammenligner deres mærker og