Learning story: Ik wil leren hoe ik het OO-principe inheritance toepas op mijn project #21

Open
opened 2023-11-21 11:51:28 +00:00 by hbo-ict-bot · 0 comments
hbo-ict-bot commented 2023-11-21 11:51:28 +00:00 (Migrated from gitlab.fdmci.hva.nl)

1. Inleiding

Object georiënteerd programmeren (OOP) leunt op een aantal pijlers: abstraction, encapsulation, inheritance en polymorfisme. De pijler inheritance is onderwerp van deze learning story.

Object-oriented programming (OOP) draait erom dat we in programma's proberen om de werkelijkheid te vatten. Wat je vaak ziet is dat, wanneer we proberen om categorieen te maken, dat we daar eindeloos mee door kunnen gaan. Zo heeft de HvA docenten, maar zijn sommige docenten meer gelijk dan anderen. Elke docent staat voor de klas, maar de ene docent heeft zich misschien gespecialiseerd in programmeren, een ander in het opstellen van een business plan, en een derde in het inrichten van infrastructuren. Daardoor heeft elke docent bepaalde basistaken, maar afhankelijk van de specialisatie heeft een individuele docent eigen kenmerken, kennis, of aanvullende taken die hij of zij kan uitvoeren.

De manier om dit principe naar OOP te vertalen noemen we Inheritance (overerving). Inheritance helpt bij het hergebruiken van code en het organiseren van objecten. Met inheritance kunnen we bijvoorbeeld een basis-class(parent) Voertuig creëren met algemene eigenschappen, zoals het aantal wielen en de maximale snelheid. Afgeleide classes zoals Auto, Vrachtwagen en Motorfiets erven deze eigenschappen en voegen specifieke kenmerken toe, zoals het aantal deuren en het laadvermogen. Dit bevordert een efficiënte en gestructureerde code, waarbij we gemeenschappelijke functionaliteit op één plek neerzetten en specifieke functionaliteit toevoegen in subclasses(childs).
Inheritance maakt het onderhouden en uitbreiden van de code gemakkelijker, waardoor we flexibele en herbruikbare code kunnen schrijven, zoals in dit voorbeeld het modelleren van auto's en andere voertuigen.

classDiagram
    Voertuig <|-- Auto
    Voertuig <|-- Vrachtwagen
    Voertuig <|-- Motorfiets
    Voertuig : -String merknaam
    Voertuig : -int aantalWielen
    Voertuig : -int maximaleSnelheid
    Voertuig : getMerknaam()
    
    class Auto{
      -int aantalDeuren
      -boolean heeftDakdragers
      getAantalDeuren()
    }
    class Vrachtwagen{
      -int laadvermogen
      -boolean heeftSlaapcabine
      getLaadvermogen()
    }
    class Motorfiets{
      -int aantalCC 
      -boolean heeftZijspan
      getAantalCC()
    }

2. Wat moet ik kunnen?

  • Je kunt een parent class maken met gemeenschappelijke eigenschappen en gedrag.
  • Je kunt verschillende child classes maken die van een parent class overerven.

3. Hoe leer ik dit?

  • Knowledgebase: inheritance en/of
  • Weblinks naar videocourses, boeken, websites over dit onderwerp, specifiek gericht op de programmeertaal waarin gewerkt wordt binnen de betreffende leerroute.
**1. Inleiding** Object georiënteerd programmeren (OOP) leunt op een aantal pijlers: abstraction, encapsulation, inheritance en polymorfisme. De pijler `inheritance` is onderwerp van deze learning story. Object-oriented programming (OOP) draait erom dat we in programma's proberen om de werkelijkheid te vatten. Wat je vaak ziet is dat, wanneer we proberen om categorieen te maken, dat we daar eindeloos mee door kunnen gaan. Zo heeft de HvA docenten, maar zijn sommige docenten meer gelijk dan anderen. Elke docent staat voor de klas, maar de ene docent heeft zich misschien gespecialiseerd in programmeren, een ander in het opstellen van een business plan, en een derde in het inrichten van infrastructuren. Daardoor heeft elke docent bepaalde basistaken, maar afhankelijk van de specialisatie heeft een individuele docent eigen kenmerken, kennis, of aanvullende taken die hij of zij kan uitvoeren. De manier om dit principe naar OOP te vertalen noemen we Inheritance (overerving). Inheritance helpt bij het hergebruiken van code en het organiseren van objecten. Met inheritance kunnen we bijvoorbeeld een basis-class(parent) `Voertuig` creëren met algemene eigenschappen, zoals het aantal wielen en de maximale snelheid. Afgeleide classes zoals `Auto`, `Vrachtwagen` en `Motorfiets` erven deze eigenschappen en voegen specifieke kenmerken toe, zoals het aantal deuren en het laadvermogen. Dit bevordert een efficiënte en gestructureerde code, waarbij we gemeenschappelijke functionaliteit op één plek neerzetten en specifieke functionaliteit toevoegen in subclasses(childs). Inheritance maakt het onderhouden en uitbreiden van de code gemakkelijker, waardoor we flexibele en herbruikbare code kunnen schrijven, zoals in dit voorbeeld het modelleren van auto's en andere voertuigen. ```mermaid classDiagram Voertuig <|-- Auto Voertuig <|-- Vrachtwagen Voertuig <|-- Motorfiets Voertuig : -String merknaam Voertuig : -int aantalWielen Voertuig : -int maximaleSnelheid Voertuig : getMerknaam() class Auto{ -int aantalDeuren -boolean heeftDakdragers getAantalDeuren() } class Vrachtwagen{ -int laadvermogen -boolean heeftSlaapcabine getLaadvermogen() } class Motorfiets{ -int aantalCC -boolean heeftZijspan getAantalCC() } ``` **2. Wat moet ik kunnen?** - [ ] Je kunt een parent class maken met gemeenschappelijke eigenschappen en gedrag. - [ ] Je kunt verschillende child classes maken die van een parent class overerven. **3. Hoe leer ik dit?** - [ ] Knowledgebase: inheritance en/of - [ ] Weblinks naar videocourses, boeken, websites over dit onderwerp, specifiek gericht op de programmeertaal waarin gewerkt wordt binnen de betreffende leerroute.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Smikkelbakje/J1B2-Game-controller#21
No description provided.