Klassen und Objekte

Werbung
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
Herunterladen