Objektorientierte Programmierung am Beispiel von Java - PowerPoint PPT Presentation

About This Presentation
Title:

Objektorientierte Programmierung am Beispiel von Java

Description:

Objektorientierte Programmierung am Beispiel von Java Wesentliche Teile zur OOP mit Java sind aus dem folgenden Dokument entnommen: Objektorientierte Programmierung ... – PowerPoint PPT presentation

Number of Views:113
Avg rating:3.0/5.0
Slides: 25
Provided by: ms12198
Category:

less

Transcript and Presenter's Notes

Title: Objektorientierte Programmierung am Beispiel von Java


1
Objektorientierte Programmierung am Beispiel von
Java
  • Wesentliche Teile zur OOP mit Java sind aus dem
    folgenden Dokument entnommen Objektorientierte
    Programmierung in Java, Mark Giereth,
    www.iis.uni-stuttgart.de/lehre/ws03-04/info3/java
    .pdf

2
Was ist Objektorientierung?
  • Datenorientierte Sichtweise
  • Gruppierung von Daten zu komplexen Typen
    (Strukturierung)
  • Definition von Operationen, die Daten verarbeiten
  • Daten vor inkonsistenten Veränderungen schützen,
    indem Zugriff beschränkt wird
  • Daten und Funktionen bilden Einheit (Klasse bzw.
    Objekt)

3
Warum Objektorientierung?Softwarekrise I
  • 1994 Eröffnung des Denver International Airport
    um 9 Monate verzögert wegen Softwareproblemen im
    Gepäcktransport-System
  • 1989-1998 Entwicklung eines Systems zur
    Unterstützung der Polizeiarbeit in Hamburg
    abgebrochen (120 Mio. DM)
  • 1996 Verlust der Ariane 5 (gt1,65 Mrd. DM)
  • 2003-2006 Toll Collect (gt 1 Mrd. EUR)

4
Warum Objektorientierung?Softwarekrise II
  • Studie der Standish Group International 1999
  • 26 aller Software-Projekte werden erfolgreich
    abgeschlossen
  • 46 leiden unter erheblicher Kosten- und
    Terminüberschreitung oder reduzierter
    Funktionalität.
  • 28 aller Software-Projekte endet ohne
    Auslieferung eines Produkts

5
Warum Objektorientierung?Softwarekrise III
  • Software ist fehlerhaft
  • Laut INTEL 80-90 Bugs in Pentium
  • Normale Software 25 Fehler pro 1000
    Programmzeilen.
  • Gute Software 2-3 Fehler pro 1000 Zeilen.
  • Space Shuttle Software weniger als 0.1 Fehler
    pro 1000 Zeilen (laut NASA)
  • Handy 200 000 Zeilen Programm ca. 500 Fehler
  • Windows 2000 27 Mio. Zeilen ca. 50 000 Fehler

6
Warum Objektorientierung?Softwarekrise IV
  • Ursachen der Softwarekrise
  • Wachsende Komplexität
  • technische Ressourcen und Möglichkeiten wachsen
    sehr schnell
  • Mooresches Gesetz

7
OOP mit Java Objekte
  • (Software-)Objekte besitzen einen internen
    Zustand und haben ein festgelegtes Verhalten
  • Ein Objekt
  • verwaltet seinen Zustand durch Variablen,
    Attribute genannt
  • implementiert sein Verhalten durch Funktionen,
    Methoden genannt

8
UML Notation
  • Die Unified Modeling Language (UML) ist eine
    Notation zur Spezifikation und Visualisierung von
    Modellen für Softwaresysteme
  • In den folgenden Folien werden Klassen- diagramme
    zur Beschreibung von Klassen und deren
    Beziehungen untereinander verwendet

9
Klassen und Objekte (Instanzen)
  • Klassen sind Vorlagen für die Erzeugung von
    Objekten
  • Jedes Objekt gehört einer Klasse an.
  • Die Attribute und Methoden der Objekte werden in
    der zugehörigen Klasse definiert
  • Alle Objekte einer Klasse besitzen dasselbe
    Verhalten, da sie dieselbe Implementierung der
    Methoden besitzen
  • Objekte einer Klasse werden auch als Instanzen
    (instance) oder Exemplare bezeichnet
  • Klassen können auch Methoden und Attribute
    besitzen, die für die Klasse selbst und nicht für
    jede Instanz gelten. Diese werden als
    Klassen-Methoden/-Attribute bezeichnet (im
    Gegensatz zu Instanz-Methoden/-Attribute)

10
Erzeugung von Objekten
  • Es wird Speicherplatz für das Objekt auf dem Heap
    allokiert (abhängig von den Datentypen der
    Attribute)
  • Bei der Erzeugung wird ein Konstruktor (spezielle
    Methode) ausgeführt, der die Initialisierung des
    Objekts vornimmt
  • Es werden den Attributen Werte zugeordnet,
    wodurch der Zustand des Objekts definiert wird
    entweder definiert durch den Konstruktor oder
    Default-Werte (0 für Zahlen, null für Referenzen,
    etc.)
  • Die Erzeugung eines Objekts erfolgt in den
    meisten Programmiersprachen mit dem new-Operator

11
Beispiel Eine Klasse und zwei Instanzen
(Objekte) der Klasse
12
Vererbung
  • Vererbung (inheritance) ist ein Konzept, wodurch
    Attribute und Methoden der Oberklasse auch den
    Unterklassen zugänglich gemacht werden
  • Vererbungsbeziehungen zwischen Klassen stellen
    Generalisierungs- bzw. Spezialisierungsbeziehungen
    dar

13
Vererbung
14
Vererbung Die Klasse Square
  • Die Klasse Square soll nun durch Vererbung von
    der Klasse GeomFigure abgeleitet werden.
  • Wir benötigen einen Konstruktor, der neben der x-
    und y-Koordinate die Seitenlänge des Quadrates
    erhält.
  • Weiterhin solle eine Methode zur Berechnung des
    Flächeninhaltes implementiert werden sowie die
    toString-Methode überschrieben werden.

15
Überschreiben von Methoden
  • Hat eine Methode einer Subklasse die gleiche
    Signatur einer Methode der Superklasse, so wird
    die Superklassenmethode überschrieben
    (overriding)
  • GeomFigure definiert eine Methode
    toString()String tmp" myX ", myY
    "" return tmp
  • Square überschreibt die Methode
    toString()String tmpsuper.toString()tmptmp"
    "seitenLreturn tmp

16
Überladen von Methoden
  • Gibt es mehrere Methoden mit demselben Namen aber
    mit unterschiedlichen Signaturen, so spricht man
    von Überladen (overloading).
  • Beispiel void println() ...void println
    (String s) ...void println (int i) ...

17
Abstrakte Klassen
  • Abstrakte Klassen sind Klassen, die mindestens
    eine abstrakte Methode haben
  • Abstrakte Methoden besitzen keine
    Implementierung.
  • Von abstrakten Klassen können keine Instanzen
    erzeugt werden
  • Unterklassen müssen entweder die abstrakten
    Methoden implementieren oder sind ebenfalls
    abstrakt

18
Beispiel Abstrakte Klassen
19
Zusammenfassung
  • Objekte
  • besitzen Attribute und Methoden
  • gehören einer Klasse an
  • Klassen
  • legen Methoden und Attribute der Objekte fest
    (Bauplan)
  • können Klassen-Methoden/-Attribute besitzen
  • können abstrakt sein
  • Objekte werden auf dem Heap erzeugt
  • den Attributen werden Werte zugeordnet
  • Konstruktoren werden ausgeführt
  • Vererbung Attribute und Methoden der Oberklasse
    werden den Unterklassen zugänglich gemacht

20
Vorteile von OOP
  • Wiederverwendung von Code
  • Einfachere Anpassbarkeit von Code, damit auch
    bessere Wartbarkeit
  • Objektorientierte Systeme ermöglichen einen
    strukturierten Systementwurf
  • Software Engineering OOA, OOD, OOP
  • Nachteile Lernaufwand, bei einfachen Programmen
    evt. mehr Code

21
Eigenschaften von Java (1)
  • Java ist plattformunabhängig
  • Java-Code wird mit einem Java-Compiler (javac) in
    plattformunabhängigen Bytecode überführt
  • Bytecode wird von einer Java Virtual Machine
    (JVM) teils interpretiert teils zur Laufzeit in
    Maschinencode kompiliert (Just-In-Time-Compiler
    in JVM integriert)
  • Für jede unterstützte Plattform muss es eine JVM
    geben

22
Eigenschaften von Java (2)
  • Java wurde auf Sicherheit und Robustheit hin
    entwickelt
  • Fehleranfällige Sprachkonstrukte fehlen keine
    Pointer und Pointerarithmetik keine
    Destruktoren sondern automatische Garbage
    Collection keine Mehrfachvererbung kein
    Operator-Overloading
  • Bytecode Verification
  • Exception Handling
  • Thread-Sicherheit in die Sprache integriert

23
Ohne Kommentar ...
24
Quellen
  • Objektorientierte Programmierung in Java, Mark
    Giereth (wesentliche Teile), www.iis.uni-stuttgar
    t.de/lehre/ws03-04/info3/java.pdf
  • Softwaretechnik für Ingenieure, Dr. Michaela
    Huhn, winf5.in.tu-clausthal.de/winf/ss05/SEfI/SE
    fI1.pdf
Write a Comment
User Comments (0)
About PowerShow.com