Programmieren 2 Java Überblick

Größe: px
Ab Seite anzeigen:

Download "Programmieren 2 Java Überblick"

Transkript

1 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 Applets 11 Internet-Anwendungen Prof. Dr. Björn Dreher Programmieren 2 - Java 144 Programmieren 2 Java Überblick: 4. Innere Klassen 4.1 Einleitung 4.2 Geschachtelte statische Klassen 4.4 Lokale Klassen 4.7 Pakete Prof. Dr. Björn Dreher Programmieren 2 - Java 145

2 4.1 Einleitung Organisation bisheriger Klassen Pro Klasse eine Datei Sog. Top-Level Klassen Hier: Klasse in einer Klasse: class Außen { class Innen { Innen ist eine innere Klasse 4 Varianten: Geschachtelte statische Klassen Elementklassen Lokale Klassen Anonyme innere Klassen Prof. Dr. Björn Dreher Programmieren 2 - Java 146 Programmieren 2 Java Überblick: 4. Innere Klassen 4.1 Einleitung 4.2 Geschachtelte statische Klassen 4.4 Lokale Klassen 4.7 Pakete Prof. Dr. Björn Dreher Programmieren 2 - Java 147

3 4.2 Geschachtelte statische Klassen Auch: Geschachtelte Top-Level Klassen und Schnittstellen Nested top-level class Statische Eigenschaft der Klasse public class Lampe { static String s = "Hell"; = 1; static class Birne { void leuchte() { System.out.println( s ); System.out.println( i ); // Fehler Statische innere Klasse hat nur Zugriff auf statische Eigenschaften der äußeren Klasse Zugriff auf normale Attribute ist nicht möglich Prof. Dr. Björn Dreher Programmieren 2 - Java Geschachtelte statische Klasse Weitere Eigenschaften Name der inneren Klasse muss von dem der äußeren Klasse verschieden sein Innere Klasse hat Zugang zu allen (statischen) Eigenschaften der äußeren Klasse Gilt auch umgekehrt Innere Klasse existiert unabhängig von Instanzen der äußeren Klasse Compiler generiert innere Klasse als normale Klasse mit einigen Spezialfunktionen Name ist ÄußereKlasse$InnereKlasse Prof. Dr. Björn Dreher Programmieren 2 - Java 149

4 4.2 Geschachtelte statische Klasse Beispiel: Verkettete Liste LinkedStack I/F Linkable LinkableInteger head = null public class LinkedStack { // This static member interface defines how objects are linked public static interface Linkable { public Linkable getnext(); public void setnext(linkable node); // The head of the list is a Linkable object Linkable head = null; public void push(linkable node) { node.setnext(head); head = node; Statische innere Schnittstelle intern genutzt Prof. Dr. Björn Dreher Programmieren 2 - Java Geschachtelte statische Klasse Beispiel: Verkettete Liste (fortgesetzt) LinkedStack I/F Linkable LinkableInteger head = null... public Linkable pop() { if (head!=null) { Linkable node = head; head = head.getnext(); return node; return null; Prof. Dr. Björn Dreher Programmieren 2 - Java 151

5 4.2 Geschachtelte statische Klasse Beispiel: Implementierung der statischen inneren Schnittstelle LinkedStack I/F Linkable LinkableInteger head = null // This class implements the static member interface class LinkableInteger implements LinkedStack.Linkable { // Here's the node's data and constructor ; public LinkableInteger() { this.i = i; Statische innere Schnittstelle extern genutzt // Here are the data and methods required to implement the interface LinkedStack.Linkable ; public LinkedStack.Linkable getnext() { return ; public void setnext(linkedstack.linkable node) { = node; Prof. Dr. Björn Dreher Programmieren 2 - Java Geschachtelte statische Klasse Beispiel: Hauptprogramm LinkedStack I/F Linkable LinkableInteger head = null public class TestInnerStaticClass { public static void main(string[] arg) { LinkedStack ls = new LinkedStack(); LinkableInteger li; for ( = 1; i < 11; i++) ls.push(new LinkableInteger(i)); while ((li = (LinkableInteger) ls.pop())!= null) System.out.println(li.i); Prof. Dr. Björn Dreher Programmieren 2 - Java 153

6 Programmieren 2 Java Überblick: 4. Innere Klassen 4.1 Einleitung 4.2 Geschachtelte statische Klassen 4.4 Lokale Klassen 4.7 Pakete Prof. Dr. Björn Dreher Programmieren 2 - Java 154 Engl.: Member class Vergleichbar mit normalem, nicht statischem Attribut Innere Klasse kann auf Attribute der äußeren Klasse zugreifen Auch auf die privaten! Innere Klassen dürfen selbst keine statischen Attribute oder Methoden definieren public class Rahmen { String s = "kringelich"; class Muster { void standard() { System.out.println( s ); static void immer() { // Fehler Prof. Dr. Björn Dreher Programmieren 2 - Java 155

7 Weitere Eigenschaften Instanz der inneren Elementklasse kann nur existieren, wenn auch einen Instanz der äußeren Klasse existiert Sie gehört zu der äußeren Klasse Erzeugung einer Instanz der inneren Klasse Aus einer Methode der äußeren Klasse ganz normal mit dem new Operator Erzeugung von außen Man benötigt eine Referenz auf das äußere Objekt Rahmen r = new Rahmen(); // Äußere Klasse Muster m = r.new Muster(); Referenz der oder kürzer äußeren Klasse Muster m = new Rahmen().new Muster(); Prof. Dr. Björn Dreher Programmieren 2 - Java 156 this Referenz this Referenz der umgebenden Klasse Rahmen Unser Beispiel: Rahmen.this Kann auch verwendet werden, um an verdeckte Eigenschaften der äußeren Klasse zu gelangen public class Rahmen { String s = "Rahmen-String"; class Muster { String s = "Muster-String" void standard() { System.out.println( Rahmen.this.s ); System.out.println( s ); Prof. Dr. Björn Dreher Programmieren 2 - Java 157

8 Mehrfach verschachtelte innere Klassen class Haus { String s = "Haus"; class Zimmer { String s = "Zimmer"; class Stuhl { String s = "Stuhl"; void ausgabe() { System.out.println( s ); // Stuhl System.out.println( this.s ); // Stuhl System.out.println( Stuhl.this.s ); // Stuhl System.out.println( Zimmer.this.s ); // Zimmer System.out.println( Haus.this.s ); // Haus public static void main( String args[] ) { new Haus().new Zimmer().new Stuhl().ausgabe(); Prof. Dr. Björn Dreher Programmieren 2 - Java 158 Erzeugen verschachtelter Objekte Haus h = new Haus; // Instanz von Haus Haus.Zimmer z = h.new Zimmer(); // Instanz von Zimmer in h Haus.Zimmer.Stuhl s = z.new Stuhl(); // Instanz von Stuhl in z s.ausgabe(); // Methode vom Stuhl Verwechslungsgefahr bei Haus.Zimmer.Stuhl mit Paket-Hierarchie java.util.date Groß-/Kleinschreibungskonventionen helfen hierbei! Man sollte sie einhalten! Prof. Dr. Björn Dreher Programmieren 2 - Java 159

9 Beispiel: Verkettete Liste mit Enumeration Schnittstelle Enumeration for (Enumeration e = ls.enumerate(); e.hasmoreelements(); ) { System.out.println(e.Element()); LinkedStack Enumerator Linkable current I/F Linkable LinkableInteger head = null Prof. Dr. Björn Dreher Programmieren 2 - Java 160 Klasse LinkedStack modifiziert public class LinkedStack { // This static member interface defines how objects are linked public static interface Linkable {... // The head of the list is a Linkable object Linkable head = null; // Methods (bodies omitted) public void push(linkable node) {... public Linkable pop() {... // This Method returns an Enumeration object for this LinkedStack public java.util.enumeration enumerate() { return new Enumerator();... Prof. Dr. Björn Dreher Programmieren 2 - Java 161

10 Klasse LinkedStack: Innere Klasse Enumerator... // Implementation of Enumeration interface as member class protected class Enumerator implements java.util.enumeration { Linkable current; // Constructor; uses private head field of containing class public Enumerator() { current = head; public boolean hasmoreelements() { return (current!= null; public Object Element() { if (current == null) throw new java.util.nosuchelementexception(); Object value = current; current = current.getnext(); return value; Enumerator Klasse als Hilfsklasse (helper class) der Klasse LinkedStack Prof. Dr. Björn Dreher Programmieren 2 - Java 162 Klasse LinkedStack: Hauptprogramm import java.util.enumeration; public class TestInnerClasses { public static void main(string[] arg) { LinkedStack ls = new LinkedStack(); LinkableInteger li; for ( = 1; i < 11; i++) ls.push(new LinkableInteger(i)); Enumeration e = ls.enumerate(); while (e.hasmoreelements()) { Object o = e.element(); if (o instanceof LinkableInteger) System.out.println( ((LinkableInteger)o).i); System.out.println(); while ((li = (LinkableInteger) ls.pop())!= null) System.out.println(li.i); Prof. Dr. Björn Dreher Programmieren 2 - Java 163

11 Programmieren 2 Java Überblick: 4. Innere Klassen 4.1 Einleitung 4.2 Geschachtelte statische Klassen 4.4 Lokale Klassen 4.7 Pakete Prof. Dr. Björn Dreher Programmieren 2 - Java Lokale Klassen Sehr ähnlich wie innere Elementklassen Jedoch nicht als Eigenschaft der Klasse definiert, sondern lokal in einem Anweisungsblock einer Methode oder in einem Initialisierungsblock Kann auf Methoden der äußeren Klasse zugreifen Kann nur auf Attribute der äußeren Klasse zugreifen, die als final deklariert sind! Modifizierer public, protected, private und static sind nicht erlaubt Prof. Dr. Björn Dreher Programmieren 2 - Java 165

12 4.4 Lokale Klassen Beispiel public class DrinnenMachtSpass { public static void main( String args[] ) { = 2; final int j = 3; class In { In() { System.out.println( j ); System.out.println( i ); // Fehler In in = new In(); Zugriff nur auf final Attribute Prof. Dr. Björn Dreher Programmieren 2 - Java Lokale Klassen Unser LinkedStack Beispiel // This Method returns an Enumeration object for this LinkedStack public java.util.enumeration enumerate() { // Definition of Enumerator as local class class Enumerator implements java.util.enumeration { Linkable current; // Constructor; uses private head field of containing class public Enumerator() { current = head; public boolean hasmoreelements() { return (current!= null; public Object Element() { if (current == null) throw new java.util.nosuchelementexception(); Object value = current; current = current.getnext(); return value; // Return Instance of Enumerator class defined directly above return new Enumerator(); Prof. Dr. Björn Dreher Programmieren 2 - Java 167

13 Programmieren 2 Java Überblick: 4. Innere Klassen 4.1 Einleitung 4.2 Geschachtelte statische Klassen 4.4 Lokale Klassen 4.7 Pakete Prof. Dr. Björn Dreher Programmieren 2 - Java 168 Ähnlich wie lokale innere Elementklassen Jedoch ohne Namen Erzeugen immer genau ein Objekt Klassendefinition und Objekterzeugung in einem Ausdruck (kann Teil eines längeren Ausdrucks sein) new SuperKlasse() { // Innere Klasse Anonyme Klasse ist Nachfahre von SuperKlasse oder new Schnittstelle() { // Innere Klasse Anonyme Klasse implementiert Schnittstelle und ist Nachfahre von Object Prof. Dr. Björn Dreher Programmieren 2 - Java 169

14 Weitere Eigenschaften Keine zusätzliche extends oder implements Angaben möglich Sonst wie lokale Klassen Beispiel: Anonyme Klasse als Nachfahre von java.util.date import java.util.*; public class InnerToStringDate { public static void main( String args[] ) { = 2; final int j = 3; Date d; d = new Date() { public String tostring() { return getdate() + "." + (getmonth()+1) + "." + (1900+getYear()); ; Methode tostring() wird überschrieben System.out.println( d ); Prof. Dr. Björn Dreher Programmieren 2 - Java 170 Konstruktoren Ohne Namen ist auch kein Konstruktor möglich Ausweg: Instanzeninitialisierer als Initialisierungsblock import java.awt.*; public class AnonymUndInnen { public static void main( String args[] ) { System.out.println( new Point() { { x = -1; y = -1;.getLocation() ); System.out.println( new Point(-1,0) { { y = -1;.getLocation() ); super(-1, 0) wird automatisch aufgerufen! Das geht natürlich auch einfacher: new Point(-1, -1).getLocation() super() wird automatisch aufgerufen! Prof. Dr. Björn Dreher Programmieren 2 - Java 171

15 Konstruktoren (fortgesetzt) Da super() automatisch aufgerufen wird, ist expliziter Aufruf verboten Weiteres Beispiel new java.math.bigdecimal(" ") { { System.out.println(toString()); ; Ausgabe im Instanzeninitialisierer Prof. Dr. Björn Dreher Programmieren 2 - Java 172 Unser LinkedStack Beispiel // This Method returns an Enumeration object for this LinkedStack public java.util.enumeration enumerate() { // Anonymous class is defined as part of return statement return new java.util.enumeration { Linkable current; // Replace constructor with instance initializer { current = head; public boolean hasmoreelements() { return (current!= null; public Object Element() { if (current == null) throw new java.util.nosuchelementexception(); Object value = current; current = current.getnext(); return value; ; // Termination of return statement! Prof. Dr. Björn Dreher Programmieren 2 - Java 173

16 Programmieren 2 Java Überblick: 4. Innere Klassen 4.1 Einleitung 4.2 Geschachtelte statische Klassen 4.4 Lokale Klassen 4.7 Pakete Prof. Dr. Björn Dreher Programmieren 2 - Java 174 Implementierung einer verketteten Liste LinkedList - head: Knoten - tail: Knoten + add(o: Object): void + tostring(): String Knoten - data: Object - : Knoten + Knoten(o: Object) tail Knoten data1 data2 data3 head = null Prof. Dr. Björn Dreher Programmieren 2 - Java 175

17 Implementierung einer verketteten Liste mit innerer Elementklasse public class LinkedList { private class Knoten { Object data; Knoten ; public Knoten( Object o ) { data = o; private Knoten head, tail; public void add( Object o ) { Knoten n = new Knoten( o ); public String tostring() { String s = ""; Knoten knoten = head; while ( knoten!= null ) { s = s + knoten.data + " "; knoten = knoten.; return s; if ( tail == null ) head = tail = n; else { tail. = n; tail = n; Prof. Dr. Björn Dreher Programmieren 2 - Java 176 Verkettete Liste: Hauptprogramm public class LinkedListDemo { public static void main( String args[] ) { LinkedList l = new LinkedList(); l.add( "Hallo" ); l.add( "Otto" ); System.out.println( l ); Ruft tostring() der LinkedList auf Prof. Dr. Björn Dreher Programmieren 2 - Java 177

18 Funktionszeiger FunktionsTest - MAX: int = 2 - func: Function[] = new Function[MAX] + FunctionTest() + calc(i: int): void + main(args: String[]): void 0..* Interface Function + calc(num: int): void FunctionOne FunctionOne + calc(num: int): void + calc(num: int): void Prof. Dr. Björn Dreher Programmieren 2 - Java 178 Implementierung Funktionszeiger Zwei innere Klassen, die im Interface eingebettet sind public interface Function { public int calc( int num ); public class FunctionOne implements Function { public int calc( int num ) { return num*2; public class FunctionTwo implements Function { public int calc( int num ) { return num*4; Prof. Dr. Björn Dreher Programmieren 2 - Java 179

19 Hauptprogramm: Funktionszeiger public class FunctionTest { final int MAX = 2; final Function[] func = new Function[MAX]; // Constructor public FunctionTest() { func[0] = new Function.FunctionOne(); func[1] = new Function.FunctionTwo();... // Main program public static void main( String args[] ) { FunctionTest ft = new FunctionTest(); ft.calcall( 42 ); public void calcall(int n) { System.out.println("Funktion0" + func[0].calc(n) ); System.out.println("Funktion1" + func[1].calc(n) );... Prof. Dr. Björn Dreher Programmieren 2 - Java 180 Programmieren 2 Java Überblick: 4. Innere Klassen 4.1 Einleitung 4.2 Geschachtelte statische Klassen 4.4 Lokale Klassen 4.7 Pakete Prof. Dr. Björn Dreher Programmieren 2 - Java 181

20 4.7 Pakete Engl.: Package Thematisch zusammenhängende Klassen Normalerweise in einem zugehörigen Verzeichnis Verzeichnisname ist Paketname package süßigkeiten; class Zucker {... public class Schokolade extends Zucker {... Prof. Dr. Björn Dreher Programmieren 2 - Java Pakete Pakete nutzen import Anweisung package leckereien; import süßigkeiten.schokolade; class Weihnachtsmann { Schokolade s; // sonst süßigkeiten.schokolade Wildcard Notation import java.awt.*; Achtung: In manchen Packages gibt es gleichnamige Klassen Prof. Dr. Björn Dreher Programmieren 2 - Java 183

21 4.7 Pakete Übersetzen und Ausführen von Klassen in Paketen Aus dem den Paketen übergeordneten Verzeichnis javac d %HOME%\java\classes packagename\dateiname.java Erzeugt Package-Verzeichnis unter classes Ausführen mit java packagename.dateiname Prof. Dr. Björn Dreher Programmieren 2 - Java 184

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

Mehr

Info B VL 11: Innere Klassen/Collections

Info B VL 11: Innere Klassen/Collections Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections

Mehr

Wiederholung aus SWE2

Wiederholung aus SWE2 Wiederholung aus SWE2 Innere Klassen Diverse neue Sprachfeatures bei Java 1.5 Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Inhalt Innere Klassen Diverse neue Sprachfeatures bei Java 1.5 Pratikum

Mehr

Innere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen.

Innere 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

Mehr

Programmieren 2 Java Überblick

Programmieren 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

Mehr

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Innere Klassen 13.06.07 1 / 11

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte

Mehr

Geschachtelte Klassen

Geschachtelte Klassen Geschachtelte Klassen Die Programmiersprache Java bietet nicht nur die Möglichkeit innerhalb von Klassen Datenfelder und Methoden zu definieren, sondern auch Klassen. Solche Klassen heißen en geschachtelte

Mehr

Programmieren in Java

Programmieren 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

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs 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

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

Kapitel 5: Interfaces

Kapitel 5: Interfaces Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 5: Interfaces Folie 82 : Einleitung Betrachtet man die Programmierleistung für ein Produkt über einen längeren Zeitraum,

Mehr

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

Instrumentierung und Dekodierung

Instrumentierung und Dekodierung 116 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Instrumentierung und Dekodierung Erweiterung der Grafikklassen Das awt-paket erweitert alle Klassen für Grafikobjekte in java.awt, so

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

Info B VL 10: Innere Klassen

Info B VL 10: Innere Klassen Info B VL 10: Innere Klassen Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 10: Innere Klassen p.221

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:

Mehr

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

Mehr

Innere Klassen in Java

Innere Klassen in Java Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird

Mehr

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 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

Mehr

ALP II Dynamische Datenmengen

ALP II Dynamische Datenmengen ALP II Dynamische Datenmengen Teil III Iteratoren Iterator-Objekt O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 22. ALP2-Vorlesung, M. Esponda 2 Motivation: Iteratoren Wir haben für die Implementierung

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

Geschachtelte Klassen

Geschachtelte Klassen Geschachtelte Klassen Christian Schamott 1 / 26 Übersicht Gemeinsamkeiten 4 Arten geschachtelte Klassen Elementklasse Lokale Klassen Anonyme Klassen Statisch geschachtelte Klassen Christian Schamott 2

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 - ! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck

Mehr

II.4.4 Exceptions - 1 -

II.4.4 Exceptions - 1 - n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen

Mehr

3 Objektorientierte Konzepte in Java

3 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

Mehr

Pakete Software Entwicklung 1

Pakete Software Entwicklung 1 Pakete Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller 1 Organisation von Klassen- und Interface-Deklaration Java-Programme bestehen aus Typdeklarationen, d.h. Klassen- und Interface-Deklarationen.

Mehr

Deklaration einer Klasse Innere innerhalb Klassen einer in Ja anderen v a Klasse

Deklaration einer Klasse Innere innerhalb Klassen einer in Ja anderen v a Klasse Innere Klassen in Java Java 1.0: nur top-level Klassen Seit Java Version 1.1: Innere Klassen Deklaration einer Klasse innerhalb einer anderen Klasse Illustration Eigenschaften Vorteile Anwendungsmöglichkeiten

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 Abstrakte Klassen, finale Klassen und Interfaces 12 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

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber in den Übungen! Linux, OS X http://hhu-fscs.de/linux-install-party/

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4

Mehr

II.4.2 Abstrakte Klassen und Interfaces - 1 -

II.4.2 Abstrakte Klassen und Interfaces - 1 - 1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.2 Abstrakte Klassen und Interfaces - 1

Mehr

4. Vererbung Die Klasse Object. Die Klasse Object

4. Vererbung Die Klasse Object. Die Klasse Object 4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige

Mehr

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 - ! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete II.4.2 Abstrakte Klassen und Interfaces - 1 - Ähnliche Programmteile public class Bruchelement { Bruch wert;

Mehr

Modularisierung in Java: Pakete Software Entwicklung 1

Modularisierung in Java: Pakete Software Entwicklung 1 Modularisierung in Java: Pakete Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller Um zusammengehörende Klassen, Interfaces, etc. gemeinsam zu verwalten, Sichtbarkeiten einzugrenzen und

Mehr

Objektorientierte Programmierung und Klassen

Objektorientierte Programmierung und Klassen Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 16.5.07 G. Bohlender (IANM UNI Karlsruhe) OOP

Mehr

3 Objektorientierte Konzepte in Java

3 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

Mehr

II.4.5 Generische Datentypen - 1 -

II.4.5 Generische Datentypen - 1 - 1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.5 Generische Datentypen - 1 - Ähnliche

Mehr

Vererbung. Martin Wirsing. Ziele. Vererbung

Vererbung. 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

Mehr

::Zweck. Sicherstellung, dass nur eine Instanz einer bestimmten Klasse existiert

::Zweck. Sicherstellung, dass nur eine Instanz einer bestimmten Klasse existiert ::Singleton ::Index Zweck & Motivation Anwendbarkeit Struktur Teilnehmer & Interaktionen Konsequenzen Implementierung Verwendung Verwandte Muster Erzeugungsmuster Glossar ::Zweck Sicherstellung, dass nur

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware

Mehr

Prof. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen

Prof. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Anonyme Klassen

Mehr

Info B VL 14: Java Collections/Reflections

Info B VL 14: Java Collections/Reflections Info B VL 14: Java Collections/Reflections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 14: Java Collections/Reflections

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition

Mehr

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

Objektorientierung (OO)

Objektorientierung (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

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 13: Interfaces Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Interfaces Motivation Eigenschaften Besonderheiten Anonyme Klassen Lambda-Ausdrücke Praxis:

Mehr

Kapitel 4: Klassen und Unterklassen

Kapitel 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Exkurs: ANONYME KLASSEN Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Anonyme Klassen Eigenschaften 1 Häufigste Anwendung lokaler Klassen: anonyme Definition. Klasse erhält keinen eigenen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern

Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Thema Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Referent: Frank Sanders Seite 1 Inhalt Der Vortrag hat einen sehr kurzen Einleitungsteil der sich mit Objektorientierung

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 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

Mehr

PPK2 Java Klassen, Packages Seite 1 von 17. Konstruktoren. private static int objcount=0; public Konstruktoren() { name="konstruktor-"+objcount++; }

PPK2 Java Klassen, Packages Seite 1 von 17. Konstruktoren. private static int objcount=0; public Konstruktoren() { name=konstruktor-+objcount++; } PPK2 Java Klassen, Packages Seite 1 von 17 import java.lang.math; Konstruktoren public class Konstruktoren public String name; public int min=0; public int max=10; private static int objcount=0; public

Mehr

Einführung in die. objektorientierte Programmierung

Einführung in die. objektorientierte Programmierung Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie

Mehr

Enumerations und innere Klassen

Enumerations und innere Klassen Enumerations und innere Klassen Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung

Mehr

Einführung in die Programmiersprache Java II

Einführung in die Programmiersprache Java II Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden

Mehr

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

Beispiel: 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

Mehr

Überschreiben von Methoden

Überschreiben von Methoden Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra

Mehr

Interfaces und Generics

Interfaces und Generics Algorithmen und Datenstrukturen Wintersemester 2012/13 21. Vorlesung Interfaces und Generics Jan-Henrik Haunert Lehrstuhl für Informatik I Übersicht Liste und InsertionSort für Punkte für Objekte beliebiger

Mehr

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Grundzü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

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

FH 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

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch

Mehr

Arten von Klassen-Beziehungen

Arten 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

Mehr

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Informatik II Übung 05. Benjamin Hepp 3 April 2017

Informatik II Übung 05. Benjamin Hepp 3 April 2017 Informatik II Übung 05 Benjamin Hepp benjamin.hepp@inf.ethz.ch 3 April 2017 Java package Hierarchie import.. nur noetig um Klassen aus anderen Packeten zu importieren Es kann auch immer der vollstaendige

Mehr

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Informatik II Übung 06. Benjamin Hepp 5 April 2017 Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: 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,

Mehr

Objektorientierte Programmierung. Kapitel 14: Interfaces

Objektorientierte Programmierung. Kapitel 14: Interfaces 14. Interfaces 1/26 Objektorientierte Programmierung Kapitel 14: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/ brass/oop13/

Mehr

Softwaretechnik WS 16/17. Übungsblatt 01

Softwaretechnik WS 16/17. Übungsblatt 01 Softwaretechnik WS 16/17 Übungsblatt 01 Was ist eine Klasse? Definition der Object Management Group: A class describes a set of objects that share the same specifications of features, constraints, and

Mehr

Algorithmen und Datenstrukturen. Übersicht. Interfaces und Generics. InsertionSort für Punkte. InsertionSort für Punkte

Algorithmen und Datenstrukturen. Übersicht. Interfaces und Generics. InsertionSort für Punkte. InsertionSort für Punkte Algorithmen und Datenstrukturen Wintersemester 2012/13 21. Vorlesung Übersicht Liste und InsertionSort für e für Objekte beliebiger Klassen für Objekte von Klassen, die ein(e) Nutzer(in) festlegen kann

Mehr

II.4.1 Unterklassen und Vererbung - 1 -

II.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

Mehr

Liste Programmieren Java Überblick

Liste Programmieren Java Überblick Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 4 Schnittstellen 5 Innere Klassen 6 Exceptions 7 Funktionsbibliothek 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe 10 Threads

Mehr

Java - Programmierung - Objektorientierte Programmierung 1

Java - 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

Mehr

Verkettete Datenstrukturen: Listen

Verkettete Datenstrukturen: Listen Verkettete Datenstrukturen: Listen 2 Listen Formal: Liste = endliche Folge von Elementen [a 1, a 2,..., a n ]. Spezialfall: leere Liste [ ]. Länge einer Liste = Anzahl der Elemente (bei leerer Liste: 0).

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

Mehr

Klausur: Java (Liste P)

Klausur: 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.

Mehr

Abstrakte Klassen, Interface. DVG Abstrakte Klassen, Interface

Abstrakte Klassen, Interface. DVG Abstrakte Klassen, Interface Abstrakte Klassen, Interface Beispiel: Vögel Definition von Klassen enthält Abstraktion von den konkreten Objekten. Z.B.: Klasse: Vogel Kann ein Objekt der Klasse Vogel instanziiert werden? Nein, es gibt

Mehr

Klassenvariablen, Klassenmethoden

Klassenvariablen, Klassenmethoden Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden

Mehr

Einführung in die Programmierung

Einfü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

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: 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,

Mehr

Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete

Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete 2 Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, und Pakete Martin Wirsing Ziele Den Begriff der einfachen und mehrfachen Vererbung verstehen Verstehen, wann Vererbung eingesetzt wird deklarationen

Mehr

Algorithmen und Datenstrukturen 11

Algorithmen und Datenstrukturen 11 5. Juli 2012 1 Besprechung Blatt 10 Fragen 2 Hashing Allgemein, Hashtablestruktur Sondierungsverfahren 3 Anonyme und innere Klassen Anonyme Klassen Innere Klassen 4 Zirkuläre Arrays 5 Vorbereitung Blatt

Mehr

Institut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur

Institut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 17. Juli 2015 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 7. September

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 31. März 2009, c 2009 D.Rösner

Mehr

Übergang von funktionaler zu OOP. Algorithmen und Datenstrukturen II 1

Übergang von funktionaler zu OOP. Algorithmen und Datenstrukturen II 1 Übergang von funktionaler zu OOP Algorithmen und Datenstrukturen II 1 Imperative vs. funktionale Programmierung Plakativ lassen sich folgende Aussagen treffen: funktional: imperativ: Berechnung von Werten

Mehr

Autoboxing - Nachtrag

Autoboxing - Nachtrag Autoboxing - Nachtrag Mit dem Autoboxing ist eine Reihe von Unregelmässigkeiten verbunden, die der Programmierer beachten muss, um Fehler zu vermeiden. aus: Christian Ullenboom Java ist auch eine Insel

Mehr

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr

Kapitel 9. Inner Classes. 9.1 Wiederholung: Iteratoren. Ausführen einer Operation auf allen Elementen einer Containerklasse

Kapitel 9. Inner Classes. 9.1 Wiederholung: Iteratoren. Ausführen einer Operation auf allen Elementen einer Containerklasse Kapitel 9 Inner Classes 9.1 Wiederholung: Iteratoren Ausführen einer Operation auf allen Elementen einer Containerklasse (zb Liste, Baum,...) vgl. map/f old in der funktionalen Programmierung. Aber: higher-order

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

Übungsstunde 9. Einführung in die Programmierung I

Übungsstunde 9. Einführung in die Programmierung I Übungsstunde 9 Einführung in die Programmierung I Probleme bei Übung 8 [TODO Assistent] Nachbesprechung Übung 9 Aufgabe 1 Spieler Spieler[] spieler = { new ZufallsWortSpieler(), new ZufallsWortSpielerMitGedaechtnis(),

Mehr