Javascript

OOP Uppgift


🚗 Programmeringsuppgift: Fordonsparken (OOP)

I den här uppgiften ska du bygga ett system för att hantera olika typer av fordon. Du kommer att använda de fem grundpelarna i OOP som vi har gått igenom: Klasser, Inkapsling, Arv, Abstraktion och Polymorfism.

🧱 Steg 1: Skapa basklassen och kapsla in data (Inkapsling)

Skapa en basklass som heter Fordon.

  • Klassen ska ha två privata attribut (#): registreringsnummer och bränsleNivå (ett procenttal mellan 0 och 100).
  • I constructor ska du ta emot registreringsnummer. Sätt bränsleNivå till 100 som standard.
  • Skapa en getter för både registreringsnummer och bränslevärdet så att omvärlden kan läsa dem säkert, men inte ändra dem direkt.

🧬 Steg 2: Skapa underklasser (Arv)

Skapa två underklasser som ärver från Fordon: Bil och Lastbil.

  • Använd super() i underklassernas constructorer för att skicka registreringsnumret vidare till föräldraklassen.
  • Ge Lastbil ett unikt publikt attribut eller metod, till exempel lasta() eller en privat variabel för maxlast.

🕵️‍♂️ Steg 3: Dölj komplex logik (Abstraktion)

Nu ska vi köra fordonen!

  • Lägg till en metod i basklassen Fordon som heter förbrukaBränsle(mängd). Den ska minska det privata bränslet, men aldrig gå under 0%. Om det finns tillräckligt med bränsle ska metoden returnera true, annars false.
  • Skapa en metod i klassen Bil som heter kör(distans). Metoden ska räkna ut bränsleförbrukningen (t.ex. distans * 0.5) och använda förbrukaBränsle().
  • Om bränslet räcker: Skriv ut att bilen körde.
    • Om bränslet inte räcker: Skriv ut att bilen har soppatorsk.

🎭 Steg 4: Olika beteenden med samma metod (Polymorfism)

Både bilar och lastbilar ska kunna startas, men de låter olika.

  • Skapa en metod i basklassen Fordon som heter starta Motor(). Låt den skriva ut ett standardljud.
  • Överskriv (override) metoden startaMotor() i både Bil och Lastbil så att de skriver ut sina egna unika motorljud (t.ex. "Vroom!" respektive "Brrrr, CHUG-CHUG!"), men se till att de fortfarande använder this.registreringsnummer för att visa vilket fordon det gäller.

🏁 Steg 5: Testa ditt system

Skapa en array (en fordonslista) som innehåller en blandning av minst två bilar och en lastbil. Loopa igenom listan med forEach och starta motorerna på alla fordonen med ett enda metodanrop.