Franz Pucher / HIM0Board

You are viewing an older revision! See the latest version

HasA versus IsA

Table of Contents

  1. HasA (hat ein)

C++ Seite

HasA (hat ein)

Composition (Komposition, Aggregation): Beschreibt die Beziehung zwischen einem Ganzen und seinen Teilen.

Das folgende UML Klassendiagramm zeigt die Klasse HasA, wobei die Klasse DigitalOut instanziiert wird (Klasse HasA hat ein DigitalOut-Element):

/media/uploads/fpucher/uml_hasa.jpg

Dieses UML-Diagramm der Klasse HasA wird in den folgenden C++ Code umgesetzt:

class HasA
{
private:
    DigitalOut _led;

public:
    HasA(PinName ld) : _led(ld) {};  // Constructor
    void LedOn() {
        _led = 1;
    }
    void LedOff(){
        _led.write(0);
    }
}  
  • In Zeile 4 wird eine private Membervariable (Attribut) _led des Datentypes DigitalOut der Klasse HasA hinzugefügt.
  • In Zeile 7 wird ein parametrisierter Konstruktor verwendet und die private Membervariable _led mit dem übergebenen Parameter ld initialisiert.
  • In Zeile 8 und 11 werden zwei Methoden (Memberfunktionen, Elementfunktionen) inline Implementiert.
  • Zeile 9 verwendet eine Abkürzung zur write-Methode in Zeile 12 den (überladenen = Operator zum Einschalten der Led
  • Zeile 12 verwendet die write-Methode.

In Zeile

(MyLed hat ein DigitalOut-Pin). Allerdings wird erst die Adresse des eigentlichen Zieles - auf eine Klasse DigitalOut – erzeugt und im parametrisierten Konstruktor - selber Name wie Klasse - mit einem Pin-Namen als Parameter wird ein neues DigitalOut Objekt led1 mit Pin ld1 erzeugt:

Blinky OOP


All wikipages