2.4 KiB
2.4 KiB
Innkapsling - Vehicle-oppgave
Oppgaven handler om en Vehicle
-klasse, som håndterer informasjon om et kjøretøy og implementerer innkapslingsmetoder med validering.
Et Vehicle
-objekt inneholder type kjøretøy, drivstoffet det bruker og registreringsnummer:
- Typen kan være enten motorsykkel eller bil.
- Drivstoffet kan være enten hydrogen, elektrisitet, diesel eller bensin. Kun biler kan gå på hydrogen.
- Gyldige registreringsnummeret avhenger av typen kjøretøy og drivstoff etter følgende regler:
- Kjøretøy som går på elektrisitet skal ha registreringsnummer som starter med bokstavene
"EL"
eller"EK"
- Hydrogenbilene har registreringsnummer som begynner med bokstavene
"HY"
- Dieselkjøretøy og bensinkjøretøy har registreringsnummer som begynner på to bokstaver. De kan ikke være
"EK"
,"EL"
eller"HY"
. Bokstavene Æ, Ø og Å skal ikke brukes. - For alle drivstoff gjelder det at det skal være brukt store bokstaver.
- Ellers så gjelder det at motorsykler har 4 sifre etter bokstavene, mens biler har 5.
- Kjøretøy som går på elektrisitet skal ha registreringsnummer som starter med bokstavene
Følgende metoder må implementeres:
Vehicle(char, char, String)
- Konstruktør der argument-rekkefølgen må være kjøretøystype, drivstofftype og registreringsnummer. Ved ugyldige argumenter utløses unntak av typenIllegalArgumentException
.getFuelType()
- returnerer type drivstoff som følgende:'H'
for hydrogen,'E'
for elektrisitet,'D'
for diesel eller'G'
for bensin.getRegistrationNumber()
- returnerer registreringsnummeretsetRegistrationNumber(String)
- endrer registreringsnummeret dersom det er gyldig i henhold til kravene over, og utløser unntak av typenIllegalArgumentException
dersom det ikke er gyldig.getVehicleType()
- returnerer kjøretøystype:'M'
for motosykkel,'C'
for bil.
Del 1 – Java-kode
Implementer Vehicle
-klassen som beskrevet over med stram innkapsling. Eventuelle hjelpemetoder for validering bør også ha stram innkapsling. Det kan være lurt å lese om String-klassen og dens metoder før du setter i gang.
Testkode for denne oppgaven finner du i encapsulation/VehicleTest.java.
Merk at din implementasjon må ligge i en pakke med samme navn som testkodens pakke. Pass derfor på at Vehicle-klassen ligger i pakken encapsulation
.