LU06a - Wie kommunizieren Objekte

Eine gut geführte Kommunikation im Alltag weist zwei Merkmale auf

  1. wird der Gesprächspartner / die Gesprächspartnerin persönlich angesprochen, mit Vor- oder Nachname.
  2. wird eine eindeutige Frage oder ein eindeutiger Auftrag formuliert.

Abb: Kommunikation im Alltag

Damit eine Kommunikation gelingen kann braucht es

  • eine Referenz zum Objekt, mit dem kommuniziert werden soll und
  • die Kenntnis über die Schnittstelle des Objekts.

Unter dem Begriff „Schnittstelle“ verstehen wir hier die Gesamtheit aller Fähigkeiten (Methoden), die ein Objekt anbietet. Angewendet auf Python bedeutet das, dass eine Objektreferenz vorhanden sein muss und dass man die Methoden des Objekts kennen muss, um diese anzuschreiben.

  the_object_reference.the_method_to_do()

Methoden kennen zwei Ausprägungen. Nämlich solche, die einen Befehl ausführen, ohne dem Aufruf ein Ergebnis zu liefern und solche die ein Ergebnis liefern.

Methoden, die keine Werte liefern, werden in der Fachsprache als Prozedur (procedure) bezeichnet und im UML-Klassendiagramm wie folgt angeschrieben:

+ the_method_to_do() : void

wobei das Schlüsselwort void für leer steht.

Methoden die einen Wert zurückgeben, werden in der Fachsprache als Funktion (function) bezeichnet. Im UML-Diagramm muss dann der genaue Datentyp des Wertes angegeben werden:

+ to_string() : String

    def print(self):
      '''
      Beispiel für eine Prozedur
      Gibt die Attribute des Objekts auf dem Stdout aus.
      '''
      print('.........')
 
    def is_temperature_below_zero(self, room):
        '''
        Beispiel einer Funktion.
        Gibt bekannt, ob die Temperatur im Raum room unter 0 liegt
        :param room: Raumbezeichnung
        :return: True wenn die Temperatur unter 0 liegt, sonst False
        '''
        if self._temp < 0:
            return True
        else: 
            return False

René Probst, bearbeitet durch Marcel Suter

  • modul/m320_2024/learningunits/lu06/kommunikation.txt
  • Zuletzt geändert: 2024/08/27 08:22
  • von msuter