einstieg in oop
Post on 22-May-2015
1.076 Views
Preview:
TRANSCRIPT
2 28 © add2 GmbH 2007
Düsseldorf, 20.08..2007
Einstieg in OOP
3 © add2 GmbH 2007
Klassenbasiertesprogrammieren mit Flash
4 © add2 GmbH 2007
OOP Definition
Die objektorientierte Programmierung (kurz OOP) ist ein auf dem Konzept der Objektorientierung basierendes Programmierparadigma, welches Flexibilität und Wiederverwendbarkeit von Programmen fördert.
Die Grundidee der objektorientierten Programmierung ist, Daten und Funktionen, die auf diese Daten angewandt werden können, möglichst eng in einem sogenannten Objekt zusammenzufassen und nach außen hin zu kapseln, so dass Methoden fremder Objekte diese Daten nicht versehentlich manipulieren können.
Im Gegensatz dazu beschreibt das vor der OOP vorherrschende Paradigma eine strikte Trennung von Funktionen (Programmcode) und Daten, dafür aber eine schwächere Strukturierung der Daten selbst.
5 © add2 GmbH 2007
Warum objektorientiert programmieren?
Software lässt sich schneller entwickeln
ist leichter zu warten
weniger Fehleranfällig sowie einfacher zu debuggen
Source Code ist übersichtlicher
Wiederverwendbar (Frameworks)
6 © add2 GmbH 2007
Was zeichnet objektorientierte Programmierung aus?
AbstraktionEin Objekt verkörpert einen Arbeiter der verschiedene Eigenschaften hatund verschiedene Aufgaben übernehmen kann.
KapselungJedes Objekt ist einer Kapsel, das heißt Eigenschaften und Verhaltens-weisen die in dem Objekt implementiert werden überschreiben nicht etwaiggleichlautende Eigenschaften außerhalb des Objektes.
VererbungEs können allgemeine Verhaltensweisen und Eigenschaften von Objekten ineinen Oberklasse heraus generalisiert werden. So kann doppelter Code aufleichte Weise vermieden werden.
PolymorphieKlassen die von einer Oberklasse allgemeine Eigenschaften und Verhaltens-weisen geerbt hat können diese überschreiben um so ein spezialisiertesVerhalten zu erzeugen.
7 © add2 GmbH 2007
Die Klasse
Klassen
Klassen sind sozusagen Objektfabriken, wir erzeugen ein Objekt von einer Klasse. Analogie in der Natur sind die Gattungen, von der Gattung Fisch werden Fischobjekte erzeugt.
Beispiel:
class User {
public function User() {
}
}
Einfaches Klassenkonstrukt mit dem sogenannten Konstruktor der Klasse.
Erklärung: Konstruktoren besitzen denselben Namen wie die Klasse.
Einfache Erzeugung einer Instanz der Klasse User:
var carlos : User = new User();
var simone : User = new User();
var user3 : User = new User();
8 © add2 GmbH 2007
Die Eigenschaften
Eigenschaft
Eigenschaft Variable eines Objektes
Beispiel:
class User {
private var _name : String;
public function User() {
}
}
Die Eigenschaft _name hat keinen Wert und ist private. Möglich wäre auch
public var _name : String;
Wurde in diesem Beispiel aber auf private gesetzt um eine Manipulation von außen zu verhindern.
9 © add2 GmbH 2007
Methoden: Getter / Setter Methode (implizit)
Methode
Methode eines Objektes, Verhaltensweise, Nachricht)
Beispiel:
class User {
private var _name : String;
public function User() {
}
public function set name(name : String) : Void {
_name = name;
}
public function get name() : String {
return _name;
}
}
10 © add2 GmbH 2007
Methoden: Getter / Setter Methode (implizit)
Setter ausführen.
var carlos : User = new User();
carlos.name = ‘Carlos Ulluoa‘;
var simone : User = new User();
simone.name = ‘Simone Meier‘;
var user3 : User = new User();
user3. name = ‘Fake User‘;
Getter ausführen.
trace(carlos.name);
trace(simone.name);
trace(user3.name);
11 © add2 GmbH 2007
Methoden: Einfache Methode
Beispiel:
class User {
private var _name : String;
public function User() {
}
public function set name(name : String) : Void {
_name = name;
}
public function get name() : String {
return _name;
}
public function sayHello() : Void {
trace('Hi my name is: ' + _name );
}
}
Methode „sayHello“ ausführen:
carlos.sayHello();
simone.sayHello();
user3.sayHello();
12 © add2 GmbH 2007
Methode != Funktion
Methoden
ist eine Routine die fast immer zu einer Klasse oder einem Objekt gehört und auch von einem Objekt oder Instanz aufgerufen wird.
Funktion
Erstellt keine Objekte und gehört auch zu keiner Klasse oder Instanz. Steht meist alleine im Raum und stammt aus der „prozeduralen“ Programmierung.
13 © add2 GmbH 2007
Instanzen - eine kurze Beschreibung von "new"
Definitionen
Klasse: Eine Vorlage die benutzt wird um Eigenschaften eines Objektes zu setzen.
Instanz: Ein Objekt erstellt mit Hilfe einer Klasse.
Beispiel:
var carlos : User = new User();
Klasse: User
Instanz: carlos
14 © add2 GmbH 2007
Datenkapselung
Als Datenkapselung bezeichnet man in der Programmierung das Verbergen von Implementierungsdetails.
Der direkte Zugriff auf die interne Datenstruktur wird unterbunden und erfolgt statt dessen über definierte Schnittstellen.
Objekte können den internen Zustand anderer Objekte nicht in unerwarteter Weise lesen oder ändern. Ein Objekt hat eine Schnittstelle, die darüber bestimmt, auf welche Weise mit dem Objekt interagiert werden kann.
15 © add2 GmbH 2007
Datenkapselung
Beispiel:
class Couple {
private var _male:User;
private var _female:User;
public function Couple() {
_male = new User();
_male.name = ‘Roland Meier ‘;
_female = new User();
_female.name = ‘Heike Schmidt ‘;
}
public function married():Void {
trace(_male +‘ist verheiratet mit ‘ + _female);
}
}
16 © add2 GmbH 2007
Feedback
Verschiedene Objekte kommunizieren über einen Nachricht-Antwort-Mechanismus, der zu Veränderungen in den Objekten führt und neue Nachrichtenaufrufe erzeugt. Dafür steht die Kopplung als Index für den Grad des Feedback.
17 © add2 GmbH 2007
Vererbung
Durch Vererbung können neue Klassen definiert werden, die auf einer (Super-)Klasse basieren.
Hierbei stellt die neue Klasse eine Erweiterung ihrer Oberklasse dar. Die neue Unterklasse (subclass) erbt alle Eigenschaften (= Daten und Methoden) der Oberklasse (super class). Zusätzlich können weitere Datenfelder und Methoden definiert werden.
Statt die Unterklasse völlig neu zu implementieren, verwendet man die Implementierung der Oberklasse, welche die Eigenschaften vererbt.
In der erweiterten Klasse können neue Datenfelder und Methoden definiert werden. Man darf auch Methoden der Oberklasse durch neue Methoden ersetzen.
Erstellen einer Subklasse
class KlassenName extends NameSuperklasse {.....}
Die Vererbung erfolgt über das Schlüsselwort extends.
Wenn eine Klasse von einer anderen Klasse abgeleitet wird, erbt die untergeordnete Klasse automatisch alle Eigenschaften (Attributvariablen) und das gesamte Verhalten (Methoden) der übergeordneten Klasse. Hierbei ist zu beachten, dass die Vererbung immer additiv ist. Es ist nicht möglich, von einer Klasse zu erben und weniger zu erhalten als die übergeordnete Klasse enthält.
18 © add2 GmbH 2007
Vererbung
Die Vererbungsbeziehung beinhaltet eine Aufrufbeziehung in Pfeilrichtung von der Unterklasse zur Oberklasse.
Vorteile:
Die Implementierung von Auto kann in AutoBunt und PolizeiAuto weiter verwendet werden. Zusätzliche Eigenschaften werden in den Unterklassen implementiert.
19 © add2 GmbH 2007
Polymorphie
Verschiedene Objekte können auf die gleiche Nachricht unterschiedlich reagieren.
Wird die Zuordnung einer Nachricht zur Reaktion auf die Nachricht erst zur Laufzeit aufgelöst,
dann wird dies auch späte Bindung genannt.
20 © add2 GmbH 2007
Polymorphie
Beispiel:
class Female {
public function Couple() {
}
public function sayHello ():Void {
trace("Hello, my name is "+name+" and I am a Female.");
}
}
class Female {
public function Couple() {
}
public function sayHello ():Void {
trace("Hello, my name is "+name+" and I am a male.");
}
}
21 © add2 GmbH 2007
Fragen, Anregungen und Kritik?
22 © add2 GmbH 2007
Ansprechpartner
Christian SobolewskiFlash Developer
Graf-Adolf-Platz 1-240213 Düsseldorf
Fon +49.211.540.38.301Fax +49.211.540.38.150
cs2@add2.dewww.add2.de
top related