Up:

02312 Indledende programmering,  IMM DTU,  Ver. 2003-10-27

Opgaver til 5. semester-uge.

 

Anbefalet løsningsrækkefølge af opgaverne: 20, 19, 19B, 19C.

 

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, som angivet ovenfor. Klassen skal også have en passende konstruktør.

 

Spm. 2: Lav en klasse TestBil,der opretter nogle bilobjekter, sammenligner deres mærker og udskriver oplysninger om dem.