K04 Java im Überblick

Werbung
FHZ
Hochschule Technik+Architektur Luzern
Abteilung Informatik, Fach Programmieren
K04 Java im Überblick
K04 Java im Überblick
•
Inhalt
1. Java ist ...
2. Stammbaum der Programmiersprachen
3. Die "Softwarekrise"
1. Merkmale von Software
2. Fortlaufende Veränderungen
3. Erschwerte Rahmenbedingungen bei der Software-Entwicklung
4. Strukturierte vs. objektorientierte Programmierung
1. Strukturierte Programmierung
2. Objektorientierte Programmierung
5. Objekte und Klassen
6. Vererbung
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
K04 Java
Folie 1
Lernziele
• Sie wissen was Java auszeichnet
• Sie kennen den Stammbaum der
Programmiersprachen
• Sie kennen die Merkmale von Software
• Sie wissen den Unterschied zwischen strukturierter
und objektorientierter Programmierung
• Sie wissen was Objekte und Klassen sind
• Sie verstehen wie Vererbung funktioniert
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
K04_Java-P.ppt, V20
2003 © Diego Schmidlin
K04 Java
Folie 2
Teil 1
Seite 1
FHZ
Hochschule Technik+Architektur Luzern
Abteilung Informatik, Fach Programmieren
K04 Java im Überblick
1. Java ist ...
• gut erlernbar
"
"
"
– Anlehnung an C++ -Syntax
– wenige Konzepte (alles in Klassen)
– keine Adressen (Pointer)
• objektorientiert
"
"
"
– Vererbung
– Polymorphie (Vielgestaltigkeit)
– umfangreiche Klassenbibliotheken
!1
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
K04 Java
Folie 3
1. Java ist ...
• robust
"
"
"
– automatische Speicherverwaltung (Garbage collector)
– typisierte Sprache
– Fehlerbehandlung (Exceptions)
• Architektur unabhängig
"
"
– 1 Compiler (-> Byte-Code)
– n Interpreter (1 JVM pro Plattform)
!1
K04_Java-P.ppt, V20
2003 © Diego Schmidlin
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
K04 Java
Folie 4
Teil 1
Seite 2
FHZ
Hochschule Technik+Architektur Luzern
Abteilung Informatik, Fach Programmieren
K04 Java im Überblick
1. Java ist ...
• sicher
"
"
"
– Übertragung im Byte-Code
– Interpreter mit Byte-Code Verifier
– Security-Manager (Zugriffsberechtigung)
• Thrad-unterstützend
"
"
– parallele Abläufe (Nebenläufigkeit)
– Synchronisations- und Kommunikationsmechanismen
• Internet-tauglich
"
– wegen der oben aufgeführten Eigenschaften
!1
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
K04 Java
Folie 5
2. Stammbaum der Programmiersprachen
• Ausschnitt:
!2
K04_Java-P.ppt, V20
2003 © Diego Schmidlin
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
K04 Java
Folie 6
Teil 1
Seite 3
FHZ
Hochschule Technik+Architektur Luzern
Abteilung Informatik, Fach Programmieren
K04 Java im Überblick
2. Stammbaum der Programmiersprachen
1) Konzept
2) Eleganz
3) Syntax
!2
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
K04 Java
Folie 7
3.1 Merkmale von Software
• Software entwickeln ist schwierig. Wieso?
• Merkmale von Software:
– Immaterielles Produkt
– Entwickler besitzt grossen Gestaltungsfreiraum
• keine Einschränkung durch physikalischen Gesetze
– Software ist leicht und schnell änderbar
– Die Software-Qualität ist schwer
• definierbar
• quantifizierbar
– Software unterliegt keinem Verschleiss
– Software altert!
• Anforderungen und Umgebung ändern
!3
K04_Java-P.ppt, V20
2003 © Diego Schmidlin
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
K04 Java
Folie 8
Teil 1
Seite 4
FHZ
Hochschule Technik+Architektur Luzern
Abteilung Informatik, Fach Programmieren
K04 Java im Überblick
3.2 Fortlaufende Veränderung
• Fortlaufende Veränderung
– Software ist wichtiges Wirtschaftsgut
– Software ist vielerorts überlebenswichtig
– Software wird laufend für komplexere Aufgaben eingesetzt
• SAP R/3: ca. 7'000'000 Zeilen Quellencode!
– Software kann aktuelle Möglichkeiten der Hardware
meistens nicht voll ausschöpfen
– Software-Altlasten nehmen ständig zu
• Vergleiche Jahr 2000-Problem
!3
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
K04 Java
Folie 9
3.3 Erschwerte Rahmenbedingungen
• Erschwerte Rahmenbedingungen bei Entwicklung
– Software-Anforderungen
• Hardware- und Systemkomponenten
• Entwicklungswerkzeuge und –methoden
ändern sich rasant
– Fehleinschätzung von Softwarekomplexität
• führt zu einer falschen Wertschätzung von Software-Entwicklung
!3
K04_Java-P.ppt, V20
2003 © Diego Schmidlin
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
K04 Java
Folie 10
Teil 1
Seite 5
FHZ
Hochschule Technik+Architektur Luzern
Abteilung Informatik, Fach Programmieren
K04 Java im Überblick
4.1 Strukturierte Programmierung
• Programm besteht aus
– Unterprogrammen (Funktionen, Prozeduren)
• führen verschiedene Operationen aus
• manipulieren Daten
• Daten werden
– über globale Variablen direkt angesprochen
– von Unterprogramm zu Unterprogramm weitergereicht
• mittels Zeiger auf Daten (Speicherstelle)
• Charakteristisch ist Trennung von
– Daten
– Unterprogramme, die Daten manipulieren
• Typische Vertreter:
– Fortran, Cobol, Basic, Pascal, C usw.
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
!4
K04 Java
Folie 11
4.1 Strukturierte Programmierung
Zugriff auf
Daten über
Pointer
Daten
Zugriff auf
Daten
Funktion 1
Funktion 2
Funktion 3
Funktionsaufruf
!4
K04_Java-P.ppt, V20
2003 © Diego Schmidlin
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
K04 Java
Folie 12
Teil 1
Seite 6
FHZ
Hochschule Technik+Architektur Luzern
Abteilung Informatik, Fach Programmieren
K04 Java im Überblick
4.2 Objektorientierte Programmierung
• Programm besteht aus
– aufeinander abgestimmte Sammlung von Objekten
• Objekte
– Einheiten von Daten und Methoden (Algorithmen)
– kommunizieren durch gegenseitiges Aufrufen von
Zugriffsmethoden (Austauschen von Botschaften)
• Typische Vertreter:
–
–
–
–
–
Smalltalk
Objective C
C++
Java
C#
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
!5
K04 Java
Folie 13
4.2 Objektorientierte Programmierung
Daten,
lokale Methoden,
lokale Objekte
Aufruf von
Zugriffsmethode
Zugriffsmethoden,
Interface
!5
K04_Java-P.ppt, V20
2003 © Diego Schmidlin
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
K04 Java
Folie 14
Teil 1
Seite 7
FHZ
Hochschule Technik+Architektur Luzern
Abteilung Informatik, Fach Programmieren
K04 Java im Überblick
4.2 Objektorientierte Programmierung
• Vorteile:
"
– Modularisierung
• Programm besteht aus interagierenden Objekten
"
– Modellierung der realen Welt
• Problemlösung mittels Objekten
"
– Durchgängige SW-Entwicklung
• Analyse # Design # Implementation
"
– einfache Erweiterbarkeit
– bessere Wiederverwendbarkeit
– Programmieren wird vereinfacht
"
"
! 5/6
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
K04 Java
Folie 15
5. Objekte und Klassen
• Objekt
– repräsentiert "abgeschlossene" Einheit
– bestehet aus Daten und Methoden
• Beispiele für Objekte:
– Textverarbeitung:
• Wörter, Seiten, Linien, Köpfe, ...
– Reservationssystem:
• Flüge, Flughäfen, Sitze, Zeiten, ...
– Schachspiel:
• Brett, Figuren, ...
!6
K04_Java-P.ppt, V20
2003 © Diego Schmidlin
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
K04 Java
Folie 16
Teil 1
Seite 8
FHZ
Hochschule Technik+Architektur Luzern
Abteilung Informatik, Fach Programmieren
K04 Java im Überblick
5. Objekte und Klassen
• Anstatt jedes Objekt einzeln zu definieren, definiert der
Programmierer sogenannte Klassen
• Klasse
– Allgemeine Beschreibung für einen bestimmten Objekttyp
– Von einer Klasse können beliebig viele konkrete Objekte (Instanzen)
erzeugen werden
• Klassen-Namen
– beginnen mit Grossbuchstaben
class Word {...}
• Objekt-Namen
– beginnen mit Kleinbuchstaben
Word word1 = new Word();
• Methoden-Namen
– beginnen mit Kleinbuchstaben
void insertWord(String w) {...}
! 6/7
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
K04 Java
Folie 17
6. Vererbung
• Wir sind es gewohnt in Klassen zu denken
– Lebewesen, Pflanzen, Tiere, Menschen
– Männer, Frauen
• Klassifikations-Schemas
– Klassen-Beziehungen
• Pflanzen, Tiere, Menschen sind Lebewesen
• Frauen und Männer sind Menschen
• Speziell von Bedeutung ist
– Vererbungsbeziehung
– Vererbungshierarchie
!8
K04_Java-P.ppt, V20
2003 © Diego Schmidlin
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
K04 Java
Folie 18
Teil 1
Seite 9
FHZ
Hochschule Technik+Architektur Luzern
Abteilung Informatik, Fach Programmieren
K04 Java im Überblick
6. Vererbung
G e n era lis ie ru ng
Fahrzeug
• Vererbungshierarchie
-geschwindigkeit : int
-anzahlSitze : int
-farbe : Farbe
+gasgeben()
+bremsen()
Auto
Elektromobil
-aktuellerGang : int
+hochschalten()
+tiefschalten()
+auftanken()
-spannung : int
+aufladen()
Cabriolet
Kombi
+ausfahrenVerdeck()
+einfahrenVerdeck()
-nutzlast : int
+beladen()
+entladen()
!8
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
S p e zia lisieru ng
K04 Java
Folie 19
6. Vererbung
• Vererbungsbeziehung
– Fahrzeug ist die Oberklasse von Auto
– Kombi ist Unterklasse von Auto
• Jede Unterklasse erbt alle Merkmale ihrer
Oberklasse
– Klasse Auto
• Attribute
– geschwindigkeit, anzahlSitze, farbe
• Methoden
– gasgeben(), bremsen()
• In der Klassenhierarchie findet nach
– unten eine Spezialisierung statt
– nach oben eine Generalisierung statt
!9
K04_Java-P.ppt, V20
2003 © Diego Schmidlin
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
K04 Java
Folie 20
Teil 1
Seite 10
FHZ
Hochschule Technik+Architektur Luzern
Abteilung Informatik, Fach Programmieren
K04 Java im Überblick
6. Vererbung
• Vererbung unterstützt die Wiederverwendbarkeit
– Bestehende Klassen können ergänzt bzw. spezialisiert
und wiederverwendet werden
• Vererbung lässt sich auch mit einem
Mengendiagramm veranschaulichen
Auto
Cabriolet
Kombi
Elektromobil
Fahrzeug
!9
K04_Java-P.ppt, V20
2003 © Diego Schmidlin
Abteilung Informatik, Fach Programmieren
2003 © Diego Schmidlin V20
K04 Java
Folie 21
Teil 1
Seite 11
Herunterladen