Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Objektorientierte Programmierung (OOP)

Ähnliche Präsentationen


Präsentation zum Thema: "Objektorientierte Programmierung (OOP)"—  Präsentation transkript:

1 Objektorientierte Programmierung (OOP)
Objektorientiertes Programmieren Zur Zeit am meisten verwendentes Programmierparadigma (1980 populär geworden). Neuere Ansätze: SOA (Service Oriented Approach): Dienste werden über das Internet bereit gestellt und sind über eine standardisierte Schnittstelle aufrufbar. Grundlagen: Kapselung Vererbung Polymorphismus

2 Von Unterprogrammen zu Klassen
Siehe Präsentation 01-unterprogramme-zu-klassen

3 Prozeduren Hauptprogramm globale Variablen Unterprogramm a lokale Variablen Unterprogramm b lokale Variablen Unterprogramm c lokale Variablen Anweisung_1; Anweisung_2; ...

4 Klassen Klasse Attribute Eigenschaften Methode a lokale Variablen Methode b lokale Variablen Aktionen Methode c lokale Variablen

5 Konkrete Instanz einer Klasse.
Klassen und Objekte Klasse Abstrakte Beschreibung von Eigenschaften (Attributen) und Aktionen (Methoden). = Schablone Objekt Konkrete Instanz einer Klasse. Eigenschaften Name: Haarfarbe: Alter: Aktionen laufen sitzen schlafen essen Eigenschaften Name: Sascha Müller Haarfarbe: blond Alter: 18 Aktionen laufen sitzen schlafen essen

6 Gruppenarbeit Beispiel für Klassen Zeit: 30 Minuten
Aufgaben: + Die Würfelsumme größer als 4*n; + Solange würfeln, bis mindestens m 6en. + bis genau 6 Sechsen. + Soviele 1en wie 6en.

7 Von Unterprogrammen zu Klassen
Siehe Präsentation 02-beispiele-klassen-objekte

8 Klassen und Objekte in Java
Definition einer Klasse Erzeugung von Objekten Aufruf einer Methode eines Objektes public class <Klassenname> { Attribute und Methoden} <Klassenname> <Objektname> = new <Klassenname>(); <Objektname>.<Methodenname>(<Parameter_1>,...,<Parameter_n>);

9 Beispiel Klasse definieren, Objekte erzeugen
public class Mensch { String name; String haarfarbe; int alter; public void schlafen(){S.o.p(name+”schläft”);} public void sitzen(){S.o.p(name+”sitzt”);} } public class TesteMensch { /** Startmethode der Klasse */ public static void main(String[] args) { Mensch patrick = new Mensch(); patrick.name="Patrick"; Mensch tim = new Mensch(); tim.name="Tim"; patrick.schlafen(); tim.sitzen(); }

10

11

12

13 Beispiel für eine Klasse und das Erzeugen eines Objektes
public class Rechteck { float laenge; float breite; public float berechneF(){ float a = laenge * breite; return a; } } public class Test { public static void main(String[] arg) { Rechteck r1 = new Rechteck(); r1.laenge=10f; r1.breite=1f; Rechteck r2 = new Rechteck(); r2.laenge=5f; r2.breite=20f; float f1 = r1.berechneF(); float f2 = r2.berechneF(); S.o.p("Flächeninhalt r1:"+f1); S.o.p("Flächeninhalt r2:"+f2); } }

14 Konstruktoren public class Rechteck { float laenge; float breite; public Rechteck(float l1, float b1){ laenge=l1; breite=b1; } public Rechteck(float laenge1) { laenge=laenge1; } public Rechteck() {} public float berechneF(){ float a = laenge * breite; return a; } } public class Test { public static void main( String[] arg) { Rechteck r1 = new Rechteck(10f,1f); Rechteck r2 = new Rechteck(5f); r2.breite=20f; float f1 = r1.berechneF(); float f2 = r2.berechneF(); S.o.p("Flächeninhalt r1:"+f1); S.o.p("Flächeninhalt r2:"+f2); } } Konstruktor Der Konstruktor ohne Parameter (Default-Konstruktor) ist immer definiert, falls sonst kein Konstruktor angegeben ist.

15 Statische Attribute und der this-Operator
public class Kreis{ static final float pi = f; float radius ; public Kreis (float radius) { this.radius=radius; } public Kreis() {} public float berechneF(){ float x = pi * radius * radius; return x; } } Statisches Attribut: Wird nur einmal für die Klasse (nicht für jedes Objekt) definiert. Konflikt: lokale Variable und Attribut. this. verweist auf das Attribut. public class Test { public static void main(String[] arg) { Rechteck r1 = new Kreis(7f); float f1 = r1.berechneF(); S.o.p("Flächeninhalt r1:"+f1); S.o.p(„Wert von PI:"+Kreis.pi); } } Zugriff auf eine statische Variable.

16 Statische Atrribute Getter-/Setter-Methoden
public class Kreis { static final float pi= f; float radius; public Kreis(float radius){ this.radius=radius; } public Kreis() {} public float getRadius() { return radius; } public void setRadius(float r1) { radius=r1; } public float berechneF(){ float a = pi * radius * radius; return a; } } Getter- und Setter- Methoden für den Zugriff auf Attribute. (Attribute direkt anzusprechen gilt als verpöhnt) public class Test { public static void main(String[] arg) { Rechteck r1 = new Kreis(); f1.setRadius(7f); float f1 = r1.berechneF(); S.o.p("Flächeninhalt r1:"+f1); } }

17 Getter-/Setter-Methoden in Netbeans automatisch erzeugen lassen

18 Objekte „printable“ machen: toString()
public class Kreis { … public String toString() { return "Kreis("+radius+")"; } } public class Test { public static void main(String[] arg) { Rechteck r1 = new Kreis(); f1.setRadius(7f); float f1 = r1.berechneF(); S.o.p("Flächeninhalt von "+r " ist "+f1); } } Ohne toString() Mit toString()

19 UML-Diagramm

20 Aufruf des Konstruktors

21 Klasse Bruch

22 Vererbung: Attribute werden vererbt

23 Vererbung: Methoden werden vererbt

24 Überschreiben von Methoden

25

26

27

28 Prinzipien OOP

29


Herunterladen ppt "Objektorientierte Programmierung (OOP)"

Ähnliche Präsentationen


Google-Anzeigen