====== LU06a - Wie kommunizieren Objekte ====== Eine gut geführte Kommunikation im Alltag weist zwei Merkmale auf - wird der Gesprächspartner / die Gesprächspartnerin persönlich angesprochen, mit Vor- oder Nachname. - wird eine eindeutige Frage oder ein eindeutiger Auftrag formuliert. {{modul:m320:learningunits:lu04:theorie:lu03-kommunikationgrundlage.png?400|}} //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() ===== Prozedur und Funktion ===== 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''\\ ==== Beispiel: Prozedur und Funktion bei Python ==== 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 ---- {{tag>M320-LU06}} [[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] René Probst, bearbeitet durch Marcel Suter