oop beispiele? erklärung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
iceman21
User
Beiträge: 41
Registriert: Sonntag 25. März 2007, 20:45
Kontaktdaten:

Montag 3. September 2007, 15:30

Hallo wir haben in der schule jetzt endlich mit Objekt orientierter Programmierung angefangen. Unser Lehrer hat es uns am beispiel eines Bruchrechen Trainers gezeigt. Da finde ich es auch ganz nüntzlich mit einer neuen klasse ... Bruch ... aber ich kann mir kein anderes beispiel vorstellen, indem man das verwenden könnte... Ich habe ja nciht das problem, dass ich einen neuen datentypen erstellen muss, mit dem man anders rechnet, sondern es ist alles eher "normal"
Könntet ihr mir vielleicht ein paar beispiele geben wo klassen usw nützlich wären? oder ist es generell gut mit klassen zu programmieren?? aber was nimmt man dann als klasse !? :roll:
Ich hoffe ihr könnt mir helfen ...
BlackJack

Montag 3. September 2007, 15:54

Ganz grob sind Objekte dazu da um Daten und dazugehörige Funktionen zu einer Einheit zusammen zu fassen. Eben Objekte mit einem (inneren) Zustand und einem (äusseren) Verhalten zur Verfügung zu stellen.

Datentypen sind nicht nur "Dinge" mit denen man "rechnen" kann. Ein (abstrakter) Datentyp kann definiert werden durch eine Menge von gültigen Zuständen und Operationen die mit diesen Zuständen arbeiten. Klingt verdammt nach der Beschreibung für einem Objekt, gell. Klassen sind sozusagen Baupläne oder Vorlagen für Objekte.

Beispiele: Schau Dich einfach mal in der Standardbibliothek um, da gibt's genug.

Ein Beispiel wäre der Revolver in dem russischen Roulette was hier neulich jemand implementieren wollte. Das Objekt hat einen Zustand: Die Anzahl der Kammern und wie oft man noch abdrücken kann bevor es knallt. Ausserdem wollte der Computerspieler gerne wissen wie oft seit dem letzten drehen der Trommel schon abgedrückt wurde. Und das Objekt hat "Verhalten": Drehen der Trommel um die Kugel zufällig irgendwo zu platzieren und abdrücken. Bei letzterem wird dann zurückgegeben ob sich ein Schuss gelöst hat oder nicht.

Code: Alles auswählen

import random

class Revolver(object):
    def __init__(self, chambers=6):
        self.chambers = chambers
        self.pulls_till_bang = 1
        self.pulls_since_spin = 0
    
    def spin(self):
        self.pulls_till_bang = random.randint(1, self.chambers)
        self.pulls_since_spin = 0
    
    def pull_trigger(self):
        self.pulls_since_spin += 1
        self.pulls_till_bang -= 1
        return self.pulls_till_bang == 0
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Dienstag 4. September 2007, 13:44

Mit Klassen kann man Dinge aus dem echten Leben samt ihrer Eigenschaften und ihres Verhaltens modellieren. Das kann beispielsweise eine Person (Attribute z.B.: Vorname, Nachname, Alter, Haarfarbe, Gewicht, Schuhgröße; Verhalten z.B.: Älter werden [in Form einer Methode, die den Alterszähler erhöht], Haare färben) oder ein Gegenstand (z.B. ein Auto hat Eigenschaften wie Motorleistung, Farbe, Sitzheizung und Verhaltensmöglichkeiten wie Fahren, Bremsen, Abbiegen, Blinken) sein.

Die OOP erlaubt es somit, zusammen gehörende Werte und Funktionalitäten thematisch zu gruppieren und dadurch die Arbeit mit solchen Objekten intuitiver zu machen.

Klassen sind dabei eine Art Vorlagen oder Blaupausen für bestimmte allgemeine Dinge wie eben Personen oder Autos (die wiederum durch Mechanismen wie Vererbung weiter aufgefächert werden können). Objekte sind konkrete Instanzen dieser Klassen, etwa Peter und Maria oder ein blauer Opel Vectra und ein gelber VW Lupo.
Antworten