Versions Compared

Key

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

I denne oppgaven skal vi modellere 2 to typer togvogner og bruke de dem i et tog. Vi vil bruke arv til å forenkle detteog samle det som er felles for togvognene i en superklasse.

 

Del 1 - TrainCar

I denne delen skal du lage en klasse kalt TrainCar for en enkel og generell togvogn, kall klassen TrainCar. Den skal ha følgende grunnleggende med følgende funksjonalitet:

  • TrainCar(int) - en konstruktor konstruktør som tar inn hvor mye en tom vogn veier.
  • int getTotalWeight - returnerer en vogns vognas totale vekt. Merk at denne også skal kunne kalles på subklasser og fortsatt returnere totalvekta toil vogna (stikkord: redefinering).
  • setDeadWeight(int) - Setter setter hvor mye en tom vogn veier.

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

Del 2 - CargoCar og PassengerCar

...

Denne klassen skal gjenspeile en lastevogn som frakter diverse ting og tang. Følgende funksjonalitet trengs:

  • CargoCar(int, int) - her taes tas inn hvor mye en tom vogn veier , i tillegg (som i TrainCar), og hvor mye vognen vogna sin last veier.
  • int getCargoWeight() - returnerer hvor mye lasten veier.

...

  • PassengerCar(int, int) - her taes tas inn hvor mye en tom vogn veier (som i TrainCar), og hvor mange passasjerer det er i vognenvogna
  • int getPassengerCount() - returner antall passasjerer.

...

For at getTotalWeight() skal fungere korrekt i CargoCar og PassengerCar, må den redefineres i klassene. Sørg for at den returnerer en tom vogn sin vekt pluss lasten/passasjerer. Anta at en passasjer å beregne totalvekta, så kan du anta at en gjennomsnittspassasjer veier 80 kg.

JExercise-testkode for oppgavene finner du her: inheritance/PassengerCarTest.javainheritance/CargoCarTest.java. Originalkoden (jextest) for testene finner du her: inheritance/PassengerCarTest.jextest og inheritance/CargoCarTest.jextest.

...

Klassen Locomotive skal forestille et lokomotiv som har et sett med vogner knyttet til seg.

  • addTrainCar(TrainCar) - denne metoden skal ta inn en togvogn og knytte den til Locomotivetil dette lokomotivet.
  • boolean contains(TrainCar tc- Sjekker om toget har vognen som er sendt med som argumentlokomotivet 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 som  PassengerCar sin metode, men returnerer antallet for hele togetalle vognene.
  • int getCargoWeight() - tilsvarende som CargoCar sin metode, men returnerer lastevekten for hele togetalle vognene.
  • String toString() - Redefiner Locomotive  sin toString-metode. Den skal skrive ut sette sammen en String med oversikt over alle vognene som er knyttet til den. Oversikten skal inneholde Vogntype og total vektFor hver vogn skal vogntype og totalvekt være med. Passasjervogner skal i tillegg ha med antall passasjerer . Lastevogner og lastevogner skal ha med hvor mye lasten veier. 

...

SidetypeDekningsgradOmfangFerdig
Oppgave?50?257095