Versions Compared

Key

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

...

Del 3 - Locomotive

Klassen Locomotive skal Train skal forestille et lokomotiv som har tog bestående av et sett med vogner knyttet til seg. Klassen skal ha følgende metoder (se også diagrammet til høyre):

  • addTrainCar(TrainCar) - denne metoden skal ta inn en togvogn og knytte den til dette lokomotivet.
  • boolean contains(TrainCar) - Sjekker om lokomotivet har TrainCar-argument knyttet til seg.
  • int getTotalWeight() - returner alle vognene sin totale vekt. Vi tar ikke høyde for lokomotivet sin eventuelle vekt.
  • int getPassengerCount() - tilsvarende PassengerCar sin metode, men returnerer antallet for alle vognene.
  • int getCargoWeight() - tilsvarende CargoCar sin metode, men returnerer lastevekten for alle vognene.
  • String toString() - Redefiner Locomotive  sin toString-metode. Den metoden skal sette sammen en String med oversikt over alle vognene som er knyttet til den. For hver vogn skal vogntype og totalvekt være med. Passasjervogner skal i tillegg ha med antall passasjerer og lastevogner skal ha med hvor mye lasten veier.
PlantUML Macro
class LocomotiveTrain {
	addTrainCar(TrainCar)
	boolean contains(TrainCar)
	int getTotalWeight()
	int getPassengerCount()
	int getCargoWeight()
	String toString()
}

class TrainCar {
	int getTotalWeight()
	void setDeadWeight(int)
	int getDeadWeight()
}
class CargoCar{
	CargoCar(int,int)
	int getCargoWeight()
	void setCargoWeight(int)
}
class PassengerCar{
	PassengerCar(int,int)
	int getPassengerCount()
	void setPassengerCount(int)
}

TrainCar <|--CargoCar
TrainCar <|--PassengerCar 
LocomotiveTrain *-right-> "*" TrainCar: trainCars

JExercise-testkode for oppgavene finner du her: inheritance/LocomotiveTestTrainTest.java. Originalkoden (jextest) for testen finner du her: inheritance/LocomotiveTestTrain.jextest.

 

Include Page
Bunntekst for JExercise-oppgaver
Bunntekst for JExercise-oppgaver

...