Klassen und Objekte Vorsemesterkurs Informatik Praktischer Teil WS2012/13 9. Oktober 2012 Vorkurs Informatik - WS 2012/13 Objekte Vorkurs Informatik - WS 2012/13 Was ist ein Objekt? >>> 4 >>> „Hallo!‟ >>> True >>> [1,2,3,4,5] Was ist das hier eigentlich? Daten? Datentypen? Definition Ein Objekt ist ein Baustein der objektorientierten Programmierung. Ein Objekt speichert bestimmte Daten und erlaubt bestimmte Operationen mit diesen Daten. >>> „Hallo‟ + „ world!‟ „Hallo world!‟ Vorkurs Informatik - WS 2012/13 Attribute und Methoden Definition Ein Objekt ist ein Baustein der objektorientierten Programmierung. Ein Objekt speichert bestimmte Daten und erlaubt bestimmte Operationen mit diesen Daten. Die gespeicherten Daten heißen Attribute. Die für ein Objekt erlaubte Operationen heißen Methoden. Vorkurs Informatik - WS 2012/13 (String) Methoden In einem String etwas ersetzen: >>> “Hello world!”.replace(“Hello”, “Goodbye”) „Goodbye world!‟ Parameter Herausfinden, ob in dem String eine Zahl steht: >>> “333”.isdecimal() True Rückgabewert der Methode Vorkurs Informatik - WS 2012/13 Methode vs. Funktion >>> len(“string”) Die Funktion bekommt das Objekt als Parameter >>> “333”.isdecimal() Die Methode ist von dem Objekt abhängig, das vor dem Punkt steht Vorkurs Informatik - WS 2012/13 Klassen Vorkurs Informatik - WS 2012/13 Wofür Klassen? (1/3) Funktionale Programmierung wird bei großen Programmen unübersichtlich und redundant z.B. Bankautomat und Datenbank des Finanzinstituts Daher ist eine Abstraktion notwendig Definition Eine Klasse ist die Schablone eines Objekts. Sie definiert seine Attribute und Methoden. Lösung für den Bankautomat: Modelliere ein Bankkonto mit einer Klasse Vorkurs Informatik - WS 2012/13 Wofür Klassen? (2/3) Wiederverwendbarkeit Austauschbarkeit Vorkurs Informatik - WS 2012/13 Wofür Klassen? (3/3) Kapselung Interface Implementierung Vorkurs Informatik - WS 2012/13 Aufbau einer Klasse Modelliere ein Bankkonto: Name Attribute Methoden Vorkurs Informatik - WS 2012/13 Aufbau einer Klasse Live Demo Vorkurs Informatik - WS 2012/13 Klassen: Zusammenfassung class Account: __number = 0 __transactions = [] owner = '' Attribute def __init__(self, no, owner_name): self.__number = no self.owner = owner_name Konstruktor def deposit(self, value): self.__transactions.append(value) Methode def withdraw(self, value): self.__transactions.append(-value) def get_balance(self): return sum(self.__transactions) def __str__(self): return "Kontonummer: {}, Inhaber: {}, Kontostand: {}“ .format(self.__number, self.owner, self.get_balance()) Vorkurs Informatik - WS 2012/13 Dateien lesen und schreiben Vorkurs Informatik - WS 2012/13 Dateien lesen (1/2) Der Befehl open(“dateiname.txt”) öffnet eine Datei. Einfach oder? Durch die Zeilen einer Datei kannst du wie durch eine Liste mit der for-Schleife iterieren: >>> with open(“hallo.txt”) as file: for line in file: print(line) Vorkurs Informatik - WS 2012/13 Dateien lesen (2/2) Wollen wir nicht eine ganze Zeile lesen, können wir die read()-Methode der Datei verwenden: >>> with open(“hallo.txt”) as file: file.read(5) „Hallo‟ Dabei werden genau 5 erste Zeichen ausgegeben. Beim erneuten Aufruf der read()-Methode werden die nachfolgenden Zeichen ausgegeben. Vorkurs Informatik - WS 2012/13 Dateien schreiben (1/2) Versuchen wir aber in die Datei zu schreiben… Vorkurs Informatik - WS 2012/13 Dateien schreiben (2/2) Der Befehl open(“dateiname.txt”) öffnet eine Datei im Lesemodus. Damit wir schreiben können, müssen wir das Python ausdrücklich sagen: >> with open(“hallo.txt”, “a”) as file: file.write(“Hello world!”) Dabei wird der neue Inhalt am Ende hinzugefügt. Möchte man das am Anfang oder an der beliebigen Stelle machen: http://docs.python.org/release/3.3.0/library/functions.html?highlight=open#open Vorkurs Informatik - WS 2012/13 Fragen? Vorkurs Informatik - WS 2012/13 Am 10.10.2012! Vorkurs Informatik - WS 2012/13 Vielen Dank für die Aufmerksamkeit! Vorkurs Informatik - WS 2012/13