21
Vorkurs Informatik - WS 2012/13 Vorsemesterkurs Informatik Praktischer Teil WS2012/13 9. Oktober 2012 Klassen und Objekte

Klassen und Objekte - Benutzer-Homepageslz_inf/Vorkurs/WS1213/Material/Folien/... · Vorkurs Informatik - WS 2012/13 Attribute und Methoden Definition Ein Objekt ist ein Baustein

  • Upload
    vungoc

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Vorkurs Informatik - WS 2012/13

Vorsemesterkurs Informatik

Praktischer Teil

WS2012/13

9. Oktober 2012

Klassen und Objekte

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!‟

Herausfinden, ob in dem String eine Zahl steht:

>>> “333”.isdecimal()

True

Parameter

Rückgabewert der Methode

Vorkurs Informatik - WS 2012/13

Methode vs. Funktion

>>> len(“string”)

>>> “333”.isdecimal()

Die Funktion bekommt das Objekt als Parameter

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

Lösung für den Bankautomat:

Modelliere ein Bankkonto mit einer Klasse

Definition

Eine Klasse ist die Schablone eines Objekts. Sie definiert seine Attribute und Methoden.

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

Modelliere ein Bankkonto:

Aufbau einer Klasse

Attribute

Name

Methoden

Vorkurs Informatik - WS 2012/13

Aufbau einer Klasse

Live Demo

Vorkurs Informatik - WS 2012/13

Klassen: Zusammenfassung

class Account: __number = 0 __transactions = [] owner = '' def __init__(self, no, owner_name): self.__number = no self.owner = owner_name def deposit(self, value): self.__transactions.append(value) 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())

Attribute

Konstruktor

Methode

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!