Praktische Softwaretechnologie Vorlesung 4
|
|
- Paul Hofmeister
- vor 6 Jahren
- Abrufe
Transkript
1 Praktische Softwaretechnologie Vorlesung 4 Martin Giese Johann Radon Institute for Computational and Applied Mathematics Österr. Akademie der Wissenschaften Linz PSWT Oktober 2006 p.1/28
2 Die Klasse java.lang.object Keine explizit angegebene Oberklasse java.lang.object Alle Klassen erben von Object Object definiert einige Methoden: equals(object o) hashcode() tostring()... Können (sollten) von Unterklassen überschrieben werden. PSWT Oktober 2006 p.2/28
3 Der final modifier Veränderung von Feldern nach Initialisierung verbieten: private final int x; Auch gut um deutlich zu machen, daß sich der Wert nicht ändert! Auch häufig für statische Konstanten: public static final int MONTHS_PER_YEAR = 12; Methode erlaubt kein Überschreiben: public final void m(...) {... Klasse erlaubt keine Unterklassen: public final class A {... PSWT Oktober 2006 p.3/28
4 Fehlerbehandlung in C Signalisieren von Fehlerzuständen in C entweder durch Rückgabewerte: c = getc(); if (c == EOF) {... Fehlerbehandlung oder globale Variable errno: if ((fd=fopen("file.txt","r")) == -1) { if (errno==eaccess) {... Fehlerbehandlung... Umständlich, fehleranfällig, lenkt vom Wesentlichen ab Fehlerbehandlung oft vernachlässigt PSWT Oktober 2006 p.4/28
5 Exceptions Fehlersignalisierung in Java: Exceptions Exceptions sind Objekte aus einer Unterklasse von java.lang.exception Exceptions werden geworfen : throw new java.io.exception(); Exceptions werden gefangen : try {... Hier kann eine Exception geworfen werden... catch (java.io.ioexception e) {... Hier wird Exception e behandelt... throw kann auch innerhalb von aufgerufenen Methoden sein. PSWT Oktober 2006 p.5/28
6 Abrupte Beendigung Offizieller Sprachgebrauch: Jedes Statement (und jeder Block) kann enden (complete). Ausführen bis zum letzten Statement normales Ende (normal completion) break, continue, return, throw abrupte Terminierung (abrupt completion) Abrupte Terminierung hat immer einen Grund (reason) Beispiel Methodenaufuf: Ausführung von Methodenrumpf endet abrupt auf Grund von return Methodenaufruf endet normal mit entspr. Rückgabewert PSWT Oktober 2006 p.6/28
7 Abrupte Beendigung (2) Statement throw e endet immer abrupt auf Grund der Exception e Ein Statement in einem Block, if, Schleife endet abrupt wegen Exception e äußeres Statement endet sofort aus dem selben Grund Ein Methodenrumpf endet abrupt wegen Exception e Methodenaufruf endet abrupt aus dem selben Grund D.h.: Eine Exception kann aus mehreren Methodenaufrufen auf einmal zurückspringen. Aufzuhalten nur durch try-catch PSWT Oktober 2006 p.7/28
8 Try-catch Semantik TC = try {...P1... catch (e Exc) {... P2... P1 endet normal TC endet normal P1 endet abrupt wegen Exception e vom Typ E, Untertyp von Exc P2 wird ausgeführt, TC endet wie P2 P1 endet abrupt aus einem anderen Grund TC endet abrupt aus dem selben Grund PSWT Oktober 2006 p.8/28
9 Try-catch-finally Semantik TCF = try {...P1... catch (e Exc) {... P2... finally {... P3... Wie try-catch, aber: Es wird auf jeden Fall zuletzt P3 ausgeführt. P3 endet normal TCF endet so wie try-catch ohne finally geendet hätte. P3 endet abrupt TCF endet aus dem selben Grund abrupt. PSWT Oktober 2006 p.9/28
10 throws Deklaration Exceptions können durch Methoden geworfen werden, müssen aber deklariert werden: public void writedata() throws java.io.ioexception {... Nötig für alle Excepetions die geworfen aber nicht gefangen werden. Ausnahme: manche Exceptions sind unchecked und brauchen nicht deklariert zu werden PSWT Oktober 2006 p.10/28
11 Die Throwable Hierarchie Object Throwable Error Exception OutOfMemoryError... RuntimeException IOException ParseException IndexOutOfBoundsException ClassCastException... NullPointerException PSWT Oktober 2006 p.11/28
12 Eigene Exceptions Normalerweise 2 Konstruktoren: public class EmptyStackException extends RuntimeException { public EmptyStackException() { super(); public EmptyStackException(String detail) { super(detail); PSWT Oktober 2006 p.12/28
13 null Der null Wert ist in jedem Referenztyp enthalten: Point p = null; int[] a = null; String s = null; Zugriff auf Felder und Methodenaufruf für null nicht möglich. NullPointerException zur Laufzeit PSWT Oktober 2006 p.13/28
14 Casts Cast = Typkonvertierung zwischen primitiven Typen mit unterschiedlicher Laufzeit-Semantik (double)1 == 1.0 (int)1.3 == 1 (int)0x l == 1 PSWT Oktober 2006 p.14/28
15 Casts Cast = Typkonvertierung zwischen primitiven Typen mit unterschiedlicher Laufzeit-Semantik Zwischen Referenztypen: Point p = new WeightedPoint();... double w = p.weight; // Compilerfehler! WeightedPoint wp = p; // Compilerfehler! PSWT Oktober 2006 p.14/28
16 Casts Cast = Typkonvertierung zwischen primitiven Typen mit unterschiedlicher Laufzeit-Semantik Zwischen Referenztypen: Point p = new WeightedPoint();... double w = ((WeightedPoint)p).weight; WeightedPoint wp = (WeightedPoint)p; PSWT Oktober 2006 p.14/28
17 Casts Cast = Typkonvertierung zwischen primitiven Typen mit unterschiedlicher Laufzeit-Semantik Zwischen Referenztypen: Point p = new WeightedPoint();... double w = ((WeightedPoint)p).weight; WeightedPoint wp = (WeightedPoint)p; ändert nur statischen Typ, nicht dynamischen Typ oder Wert wirft ggf. ClassCastException sollte daher i.a. nur nach entsprechendem Test geschehen... PSWT Oktober 2006 p.14/28
18 instanceof Um dynamischen Typ zur Laufzeit zu testen: p instanceof WeightedPoint true falls dyn. Typ von Wert von p <: WeightedPoint PSWT Oktober 2006 p.15/28
19 instanceof Um dynamischen Typ zur Laufzeit zu testen: p instanceof WeightedPoint true falls dyn. Typ von Wert von p <: WeightedPoint Typische Anwendung: class Point {... public boolean equals(object o) { if (o instanceof Point) { Point other = (Point)o; return this.x==other.x && this.y == other.y; else { return false; PSWT Oktober 2006 p.15/28
20 Interfaces public interface Stack { void push(string o); String pop(); void clear(); boolean isempty(); PSWT Oktober 2006 p.16/28
21 Interfaces public interface Stack { void push(string o); String pop(); void clear(); boolean isempty(); public class BoundedArrayStack implements Stack { public void push(string o) {... public String pop() {... public void clear() {... public boolean isempty() { Klasse implementiert Interface wegen Deklaration Vorhandensein von Methoden reicht nicht. PSWT Oktober 2006 p.16/28
22 Interfaces public interface Stack { void push(string o); String pop(); void clear(); boolean isempty(); public class BoundedArrayStack implements Stack { public void push(string o) {... public String pop() {... public void clear() {... public boolean isempty() { public class LinkedListStack implements Stack { public void push(string o) { PSWT Oktober 2006 p.16/28
23 Mehrfachvererbung mit Interfaces public interface Bounded { public int getmaxsize(); PSWT Oktober 2006 p.17/28
24 Mehrfachvererbung mit Interfaces public interface Bounded { public int getmaxsize(); public class BoundedArrayStack implements Stack, Bounded { public void push(string o) {... public String pop() {... public void clear() {... public boolean isempty() {... public int get getmaxsize() { PSWT Oktober 2006 p.17/28
25 Mehrfachvererbung mit Interfaces public interface Bounded { public int getmaxsize(); public class BoundedArrayStack implements Stack, Bounded { public void push(string o) {... public String pop() {... public void clear() {... public boolean isempty() {... public int get getmaxsize() { public interface BoundedStack extends Bounded, Stack { PSWT Oktober 2006 p.17/28
26 Mehrfachvererbung mit Interfaces public interface Bounded { public int getmaxsize(); public class BoundedArrayStack implements Stack, Bounded { public void push(string o) {... public String pop() {... public void clear() {... public boolean isempty() {... public int get getmaxsize() { public interface BoundedStack extends Bounded, Stack { C++: auch mehrfache Implementierungsvererbung komplizierte Regeln PSWT Oktober 2006 p.17/28
27 Elemente in Interfaces Methodendeklarationen: immer (implizit) public nie static keine Konstruktoren Felder: immer (implizit) public static final, also Konstanten Interfaces können nur andere interfaces erweitern PSWT Oktober 2006 p.18/28
28 Benutzung von Interfaces public static void fillstack(stack s1) { s1.push("test");... public static void transferstack(stack from, Stack to) { while (!from.isempty()) { to.push(from.pop()) public static void main(string[] args) { Stack s1 = new BoundedArrayStack(10); Stack s2 = new LinkedListStack(); fillstack(s1); System.out.println(s1); transferstack(s1,s2); System.out.println(s2); PSWT Oktober 2006 p.19/28
29 Abstrakte Klassen Eine Klasse ist abstrakt, wenn sie als solche deklariert ist: public abstract class AbstractStack {... PSWT Oktober 2006 p.20/28
30 Abstrakte Klassen Eine Klasse ist abstrakt, wenn sie als solche deklariert ist: public abstract class AbstractStack {... eine abstrakte Klasse kann abstrakte Methoden ohne Implementierung enthalten public abstract void push(string s); wird von Unterklasse mit Implementierung überschrieben PSWT Oktober 2006 p.20/28
31 Abstrakte Klassen Eine Klasse ist abstrakt, wenn sie als solche deklariert ist: public abstract class AbstractStack {... eine abstrakte Klasse kann abstrakte Methoden ohne Implementierung enthalten public abstract void push(string s); wird von Unterklasse mit Implementierung überschrieben kann keine Instanzen haben: new AbstractStack() Compilerfehler! PSWT Oktober 2006 p.20/28
32 Typische Anwendung von abstrakten Klassen public abstract class AbstractStack implements Stack { public abstract String pop(); public abstract void push(string s); public abstract String isempty(); /** Remove all elements from the stack. * This default implementiation repeatedly calls pop() */ public void clear() { while(!isempty()) { pop(); BoundedStack extends AbstractStack kann clear() erben kann auch effizientere Implementierung angeben. PSWT Oktober 2006 p.21/28
33 Aufzählungstypen Typen mit einer festen, endlichen Menge von Werten: public class Apfel { public static final int FUJI = 0; public static final int BOSKOP = 1; public static final int GRANNY_SMITH = 2; public class Birne { public static final int WILLIAMS_CHRIST = 0; public static final int ABATE_FETEL = 1; public static final int MOSTBIRNE = 2;... int obstsalat = 2*FUJI/BOSKOP + 1*WILLIAMS_CHRIST PSWT Oktober 2006 p.22/28
34 Aufzählungstypen Typen mit einer festen, endlichen Menge von Werten: public class Apfel { public static final int FUJI = 0; public static final int BOSKOP = 1; public static final int GRANNY_SMITH = 2; public class Birne { public static final int WILLIAMS_CHRIST = 0; public static final int ABATE_FETEL = 1; public static final int MOSTBIRNE = 2;... int obstsalat = 2*FUJI/BOSKOP + 1*WILLIAMS_CHRIST Keine brauchbare Typisierung Keine Überprüfung auf legale Werte PSWT Oktober 2006 p.22/28
35 Aufzählungstypen Typen mit einer festen, endlichen Menge von Werten: public enum Apfel { FUJI, BOSKOP, GRANNY_SMITH; PSWT Oktober 2006 p.22/28
36 Aufzählungstypen Typen mit einer festen, endlichen Menge von Werten: public enum Apfel { FUJI, BOSKOP, GRANNY_SMITH; public String name() { switch(this) { case FUJI: return "Fuji"; break; case BOSKOP: return "Boskop"; break; case GRANNY_SMITH: return "Granny Smith"; break;... "2 Stück" + Apfel.FUJI.name(); PSWT Oktober 2006 p.22/28
37 Garbage Collection In C: int[] p = malloc(1024 * sizeof(int));... free(p); In Java: int[] p = new int[1024];... Freigabe wenn keine Referenz mehr auf ein Objekt besteht. Gegebenenfalls Variablen mit null überschreiben. Vermeidet viele Probleme mit illegalen Referenzen, Memory leaks. Freigabe von Netwerk-Sockets, Datenbankverbindungen, etc. immer noch manuell. PSWT Oktober 2006 p.23/28
38 Aufgabe 8 Vertiefen und Ergänzen des Stoffs durch Lesen im Java Tutorial: Interfaces and Inheritance PSWT Oktober 2006 p.24/28
39 Aufgabe 9 Verbessere deine Stack Implementierungen: Stack Klassen leben in package stack, Tests in package test Mache Stack zu einem Interface mit zusätzlich clear löscht alle Werte auf dem Stack exch tauscht die zwei obersten Werte auf dem Stack aus. peek gibt obersten Wert zurück ohne ihn vom Stack zu löschen Klasse AbstractStack implements Stack läßt push, pop und isempty abstrakt implementiert clear, exch, peek mit den abstrakten Methoden PSWT Oktober 2006 p.25/28
40 Aufgabe 9 (forts) Bisherige Implementierung nach BoundedStack umbenennen. extends AbstractStack neue Methoden von AbstractStack erben für leeren/vollen Stack Exceptions definieren und werfen In Test auch neue Methoden überprüfen. (Variablen Typ Stack) In Test Fehler (wie pop von leerem Stack) erzeugen und Exceptions überprüfen. PSWT Oktober 2006 p.26/28
41 Aufgabe 9 (forts) DebugStack mit Delegation statt Vererbung Konstruktor DebugStack(String name, Stack delegate) delegate in privatem Feld merken Alle Operationen an delegate weiterleiten, aber mit Debugging-Ausgaben nicht von AbstractStack erben, sondern neue Methoden auch mit Delegation PSWT Oktober 2006 p.27/28
42 Aufgabe 9 (forts) Neue Stack Implementierung ArrayStack extends AbstractStack basiert wieder auf array und index Wenn Stack voll, neues, doppelt so großes Array anlegen, Inhalt kopieren Implementierung von clear aus AbstractStack überschreiben mit Impl. die wieder ein kleines Array anlegt. ArrayStack testen DebugStack mit ArrayStack und BoundedStack testen. Erklären warum DebugStack nicht von AbstractStack erben sollte. PSWT Oktober 2006 p.28/28
Praktische Softwaretechnologie Vorlesung 3
Praktische Softwaretechnologie Vorlesung 3 Martin Giese Johann Radon Institute for Computational and Applied Mathematics Österr. Akademie der Wissenschaften Linz PSWT 2006 24. Oktober 2006 p.1/26 Klassendefinition
Mehr1 Abstrakte Klassen, finale Klassen und Interfaces
1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
Mehr! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.4 Exceptions - 1 - Ausnahmen (Exceptions( Exceptions) Treten auf, wenn zur
Mehr15 Fehlerobjekte: Werfen, Fangen, Behandeln
Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehlerobjekt erzeugt (geworfen). Die Klasse Throwable fasst alle Arten von Fehlern zusammen.
Mehr1 Fehler-Objekte: Werfen, Fangen, Behandeln
1 Fehler-Objekte: Werfen, Fangen, Behandeln Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehler-Objekt erzeugt (geworfen). Die Klasse Throwable
Mehr1 Polymorphie (Vielgestaltigkeit)
1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen
MehrBeispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
MehrInfo B VL 8: Abstrakte Klassen & Interfaces
Info B VL 8: Abstrakte Klassen & Interfaces Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 8: Abstrakte
MehrJava I Vorlesung 6 Referenz-Datentypen
Java I Vorlesung 6 Referenz-Datentypen 7.6.2004 Referenzen this, super und null Typkonvertierung von Referenztypen Finale Methoden und Klassen Datentypen in Java In Java gibt es zwei Arten von Datentypen:
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1
Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen
MehrKapitel 9: Klassen und höhere Datentypen. Selektoren
Selektoren Üblicherweise erlaubt man keinen (direkten) öffentlichen (public) Zugang zu Objektvariablen mehr Kontrolle über Zugang interne Details besser verborgen Statt dessen: Zugriff auf privates Feld
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
MehrInterfaces und Vererbung
Interfaces und Vererbung Einführung in Java Folie 1 von 31 12. Mai 2011 Ivo Kronenberg Inhalt Interfaces Statische und dynamische Typen Visiblitätsmodifier Vererbung Überschreiben von Methoden Konstruktoren
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrExceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero
Exceptions Prof. Dr. Margarita Esponda SS 2012 1 Ausnahmen Eine Ausnahme (Exception) ist ein Fehler oder ein nicht geplantes Ereignis, das während der Ausführung eines Programms vorkommt und dessen normalen
MehrJava-Schulung Grundlagen
Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings
MehrObjektorientierung (OO)
Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
MehrDatenbankanwendungsprogrammierung Crashkurs Java
Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung
MehrWiederholung zur Vorlesung Programmieren
Wiederholung zur Vorlesung Jan 2007 Wintersemester 2007/2008 Computerlinguistik, Campus DU Einstieg Erläutern sie in knappen Worten die notwendigen Schritte um ein einfaches Java-Programm zu schreiben
MehrInnere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen.
Innere Klassen Innere Klassen Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen. Literatur: Java Tutorial & Arnold, K., Gosling, J. und Holmes,D... Page 1 Innere Klassen Der erste
MehrVererbung. Martin Wirsing. Ziele. Vererbung
2 Ziele Martin Wirsing en Begriff der einfachen verstehen und Redefinition von Oberklassenmethoden verstehen spolymorphie verstehen ie Klasse Object kennenlernen in Zusammenarbeit mit Michael Barth, Philipp
MehrObjektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
MehrTypumwandlungen bei Referenztypen
Typumwandlungen bei Referenztypen Genau wie es bei einfachen Typen Typumwandlungen gibt, gibt es auch bei Referenztypen Umwandlungen von einem Referenztypen in einen anderen Referenztypen, die wie bei
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
MehrProgrammieren 2 Java Überblick
Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
Mehr7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen
7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und
MehrSchnittstellen, Stack und Queue
Schnittstellen, Stack und Queue Schnittstelle Stack Realisierungen des Stacks Anwendungen von Stacks Schnittstelle Queue Realisierungen der Queue Anwendungen von Queues Hinweise zum Üben Anmerkung: In
MehrProgrammieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik
Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Prinzip der Vererbung: Aus
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes
MehrJava Schulung (Java 2 Java Development Kit 5 / 6)
2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt
Mehr2. Vererbung und Polymorphie. Vererbung (1/2) Beispiel (1/2) Vererbung (2/2) Eine Unterklasse wird folgendermaßen definiert
2. Vererbung und Polymorphie Vererbung (1/2) Vererbung mit extends Konstruktoren bei der Vererbung Überladen von Methoden - statische Polymorphie Casten Dynamische Polymorphie Klasse Object Eine Unterklasse
MehrGrundlagen der Fehlerbehandlung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java.
Universität Osnabrück 1 Grundlagen der Fehlerbehandlung 3 - Objektorientierte Programmierung in Java Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java SS 2006 Prof. Dr. F.M. Thiesing, FH Osnabrück Wenn
MehrBeispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf
16 Exceptions Zur Behandlung unerwarteter Situationen bietet Java Unterstützung in Form von Exceptions oder Ausnahmen. Den Sinn von Exceptions können wir Ihnen an einem kleinen Beispiel klarmachen. Nehmen
MehrJava Fehlerbehandlung
Java Fehlerbehandlung 1 Fehlerbehandlung In jedem nicht-trivialen Programm kann es während der Laufzeit zu Fehlersituationen kommen. Dabei handelt es sich nicht unbedingt um Programmierfehler: z. B.: Programm
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Interfaces
10 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Interfaces Aber: Mehrfachvererbung von Klassen ist in Java nicht erlaubt. Ausweg Definition eines Interfaces, z.b.:
MehrAlgorithmen und Datenstrukturen 07
5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7
MehrProgrammieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik
Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Grundidee abstrakter Klassen:
Mehr6. Globalübung (zu Übungsblatt 8)
6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006
MehrKapitel 6. Vererbung
Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
MehrJava : Fehlerbehandlung.
Java : Fehlerbehandlung Prinzip Callerklassen / Workerklassen Arbeitet... Callerklasse Arbeitet... Workerklasse Arbeitet... Arbeitet weiter... Fer7g! Prinzip Callerklassen / Workerklassen Main- Methode
MehrJavakurs zu Informatik I. Henning Heitkötter
Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,
MehrBeispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der
Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert
MehrStack stack = new Stack(); stack.push ("Würstchen"); string s = (string) stack.pop(); Console.WriteLine (s);
D3kjd3Di38lk323nnm Der Typ object object (System.Object) ist die Ausgangsbasisklasse für alle Typen. Jeder Typ kann per Upcast in ein object umgewandelt werden. Um zu zeigen, wie das nützlich sein kann,
MehrListing 1: Cowboy. Listing 2: Woody
Musterlösung Test 3 Aufgabe 1: Cowboy Listing 1: Cowboy class Cowboy { public String rope ( Cowboy that ) { if ( this == that ) { return exclaim (); 5 else { return " Caught "; public String exclaim ()
Mehr1. Abstrakte Klassen
1. Abstrakte Klassen Lernziele 1. Abstrakte Klassen Lernziele: Das Konzept abstrakter Klassen und abstrakter Methoden kennen und verstehen, in der Lage sein, abstrakte Klassen und Methoden in Java zu formulieren,
Mehr9. Fehler und Ausnahmen Grundlagen der Programmierung 1 (Java)
9. Fehler und Ausnahmen Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 13. Dezember 2005 Einordnung im Kontext der
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 13: Ausnahmen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Ausnahmen (Exceptions) Motivation Fehlerbehandlung Klassenhierarchie Checked vs. Unchecked
MehrGroße Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
MehrArbeitsblätter für die Lehrveranstaltung OOP JAVA 1
Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur
MehrGebundene Typparameter
Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte
MehrVIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden
VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:
MehrJava für Computerlinguisten
Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 16. Ausnahmen (Exception Handling)
Grundlagen der Programmierung Prof. H. Mössenböck 16. Ausnahmen (Exception Handling) Motivation Fehler können nicht immer dort behandelt werden, wo sie auftreten void p() { q(); Lösung void q() { r();
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrALP II Dynamische Datenmengen Datenabstraktion (Teil 2)
ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 49 Einfach verkettete Listen O1 O2 O3 50 Einführung Einfach verkettete Listen sind die einfachsten
MehrKapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions
Kapitel 10 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Exceptions Behandlung von Exceptions Der finally-block catch or throw WS 07/08 1/ 23 2/ 23 Grundlagen von Exceptions
MehrGrundzüge der Programmierung. Wiederverwendung VERERBUNG
Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse
MehrJava - Programmierung - Objektorientierte Programmierung 1
Java - Programmierung - Objektorientierte Programmierung 1 // Klassen und Objekte public class KlaObj public static void main(string args []) Klasse1 a; a = new Klasse1("heute", 47); Klasse1 b = new Klasse1
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrEinführung in die Programmierung
Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität
Mehr1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)
Praktische Informatik (Software) Vorlesung Softwareentwicklung 1 Prof. Dr. A. Ferscha Hauptklausur am 01. 02. 2001 Zuname Vorname Matr. Nr. Stud. Kennz. Sitzplatz HS / / / Punkte Note korr. Fügen Sie fehlende
MehrVererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
MehrVererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.
Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik II: Objektorientierte SW-Entwicklung,
MehrProgrammieren I. Kapitel 8. Vererbung
Programmieren I Kapitel 8. Vererbung Kapitel 8: Vererbung Ziel: Wesentliches objektorientiertes Konzept kennenlernen Subtypen Idee Probleme und Varianten Vererbung in Java dynamische Bindung abstrakte
MehrJava I Vorlesung Vererbung und Sichtbarkeit
Java I Vorlesung 4 Vererbung und Sichtbarkeit 17.5.2004 Vererbung Überladen, Überschreiben, Verstecken, Verschatten Zugriffskontrolle Statische Members Wiederholung: OOP Programme bestehen aus Klassen.
MehrJava Einführung Exception Handling. Kapitel 17
Java Einführung Exception Handling Kapitel 17 Inhalt Was sind Exceptoins? Wie werden sie ausgelöst? Wie kann man Exceptions behandeln? Erweiterung von Exceptions Spezialfall IO 2 Ausnahmezustände Im Ablauf
MehrProgrammieren 2 Java Überblick
Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 3 Schnittstellen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10
MehrAufgabe 1: Objekte, Klassen, Vererbung (15 Punkte)
Klausur zum Kurs 1618 im Sommersemester 2002 am 10.8.2002 1 Aufgabe 1: Objekte, Klassen, Vererbung (15 Punkte) Was ist der Unterschied zwischen a) einem Objekt und einer Klasse? b) der Instanz einer Klasse
MehrEinführung in die Programmierung für NF. Vererbung
Einführung in die Programmierung für NF Vererbung Ziele Vererbungsprinzip der objektorien=erten Programmierung verstehen und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden
Mehr3D Programmierpraktikum: Einführung in C++ - Teil 2
3D Programmierpraktikum: Einführung in C++ - Teil 2 Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 4. Mai 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum
MehrEinstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
MehrKapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
MehrException. 6. Exceptions. Die Klasse java.lang.exception. Fehlermeldung. Klassenname. Ort des Auftretens
6. Exceptions Exception Hintergrund: Programmieren auf der Basis von Verträgen Kundenklasse Lieferantenklasse Eine Exception ist ein Objekt, das Informationen über einen Programmfehler enthält. Eine Exception
Mehr1 Organisatorisches. 2 Compilezeit- und Laufzeitfehler. 3 Exceptions. 4 Try-Catch-Finally
Themen der Übung CoMa-Übung VI 1 Organisatorisches Compilezeit- und Laufzeitfehler 3 Try-Catch-Finally TU Berlin 8.11.01 Bewertung der OA 5 fehlerhaft, Madeleine arbeitet dran CoMa-Übung VI (TU Berlin)
MehrAlgorithmen und Programmierung II
Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung
MehrII.4.1 Unterklassen und Vererbung - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und Vererbung
MehrKapitel 4: Klassen und Unterklassen
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind
MehrEinstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung
MehrGliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions
try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrVererbung und Polymorphie
Vererbung und Polymorphie Aufgabe 1: Vererbungsbaum entwerfen a) Finden Sie sinnvolle Beziehungen. Füllen Sie die letzten Spalten aus. Hinweis: Es kann nicht alles mit etwas anderem verbunden werden. Klasse
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
MehrAndroid will doch nur spielen. Java Eine kurze Einführung
Android will doch nur spielen Java Eine kurze Einführung Agenda Einführung in Java Syntax und Semantik Komplexe Datenstrukturen OOP Weitere Java-Elemente 2 Einführung in Java Was ist Java? lt. Sun: einfach
MehrArten von Klassen-Beziehungen
Arten von Klassen-Beziehungen Untertypbeziehung: Ersetzbarkeit Vererbung von Code aus Oberklasse irrelevant Vererbungsbeziehung: Klasse entsteht durch Abänderung anderer Klassen Ersetzbarkeit irrelevant
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Lösungsvorschlag Objektorientierte Programmierung 22. 05. 2006 Lösung 9 (SMS-Eingabe am
Mehr5.13 Umgang mit Fehlern
5.13 Umgang mit Fehlern Klassifikation von Fehlern: Syntaxfehler: Lexikalische Fehler: Falsche oder unbekannte Worte String s neu String("Max"); Falsche Anordnung von Anweisungen: Falscher Typ: import
MehrÜbungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit
Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList
MehrMusterlösung Stand: 5. Februar 2009
Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrObjektorientierte Programmierung. Kapitel 13: Exceptions
Stefan Brass: OOP (Java), 13. Exceptions 1/39 Objektorientierte Programmierung Kapitel 13: Exceptions Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/
MehrKlausur: Java (Liste P)
Klausur: Java (Liste P) SS05 Erlaubte Hilfsmittel: Gebundene! Unterlagen (Skript mit Anmerkungen, eigene Mitschrift) und maximal ein Buch. Bitte keine losen Blätter. Lösung ist auf den Klausurbögen anzufertigen.
MehrAusnahmenbehandlung in Java. Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien
Ausnahmenbehandlung in Java Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien Was sind Exceptions? Eine Ausnahme (Exception) ist ein Objekt einer Unterklasse von Throwable Eine Ausnahme
MehrHöhere Programmierkonzepte Testklausur
Höhere Programmierkonzepte Testklausur Prof. Dr. Nikolaus Wulff Zum 15. Januar 2016 1 Ein Google-Map Algorithmus (5 Punkte) 1 2 typedef void X; 3 typedef void Y; 4 5 void map(unsigned int n / tuple length
MehrVerschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes
Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine
Mehr