Created by Unknown User (espehel), last modified by Unknown User (hal) on 22.05.2018
I denne oppgaven skal vi modellere to typer togvogner og bruke dem i et tog. Vi vil bruke arv og 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, med følgende funksjonalitet (se også diagrammet til høyre):
TrainCar(int) - en konstruktør som tar inn hvor mye en tom vogn veier.
int getTotalWeight - returnerer vognas totale vekt. Merk at denne også skal kunne kalles på subklasser og fortsatt returnere totalvekta til vogna (stikkord: redefinering).
setDeadWeight(int) - setter hvor mye en tom vogn veier. Altså vekten til kun vognen, uten passasjerer eller last.
int getDeadWeight() - returnerer hvor mye en tom vogn veier. Altså vekten til kun vognen, uten passasjerer eller last.
Klassen Train skal forestille et tog bestående av et sett vogner. 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() - toString-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.
Bruk av Exercise-panelet er obligatorisk for denne øvingen. Du må ha panelet åpent med Train.ex-filen (tests > inheritance > Train.ex) i før du begynner med oppgaven. For mer informasjon/hjelp, se nederst på forrige side, altså hovedsiden for Øving 9.