Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
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(); }
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
28
Prinzipien OOP
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.