Programmieren 2 Java Überblick
|
|
- Lars Adler
- vor 7 Jahren
- Abrufe
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, 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
MehrInfo 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
MehrWiederholung 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
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
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
MehrInnere 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
MehrEinstieg 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
MehrAlgorithmen 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
MehrGeschachtelte 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
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
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
MehrNeben 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
MehrKapitel 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,
MehrInstitut 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
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
MehrInstrumentierung 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
MehrImplementieren 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
MehrInfo 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
MehrEinstieg 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:
MehrVererbung, 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
MehrInnere 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
MehrVererbung. 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
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
MehrALP 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
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
MehrGeschachtelte Klassen
Geschachtelte Klassen Christian Schamott 1 / 26 Übersicht Gemeinsamkeiten 4 Arten geschachtelte Klassen Elementklasse Lokale Klassen Anonyme Klassen Statisch geschachtelte Klassen Christian Schamott 2
MehrEinstieg 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 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck
MehrII.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
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
MehrPakete 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.
MehrDeklaration 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
Mehr12 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,
MehrEINFÜ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/
MehrEinstieg 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
MehrII.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
Mehr4. 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 - Ähnliche Programmteile public class Bruchelement { Bruch wert;
MehrModularisierung 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
MehrObjektorientierte 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
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
MehrII.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
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
Mehr::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
MehrProgrammieren 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
MehrProf. 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
MehrInfo 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
MehrEinstieg 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
MehrEinstieg 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
MehrProgrammieren 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
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
MehrJavakurs 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:
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
MehrAlgorithmen 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
MehrExkurs: 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
MehrEinstieg 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
MehrObjektorientierte 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
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
MehrPPK2 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
MehrEinfü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
MehrEnumerations 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
MehrEinfü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
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
MehrÜ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
MehrInterfaces 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
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
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
MehrObjektorientierte 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
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. 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
MehrInformatik 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
MehrInformatik 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.
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:
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,
MehrObjektorientierte 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/
MehrSoftwaretechnik 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
MehrAlgorithmen 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
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
MehrListe 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
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
MehrVerkettete 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).
MehrJava 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
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.
MehrAbstrakte 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
MehrKlassenvariablen, 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
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
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,
MehrKlassen 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
MehrAlgorithmen 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
MehrInstitut 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
MehrAlgorithmen 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 Imperative vs. funktionale Programmierung Plakativ lassen sich folgende Aussagen treffen: funktional: imperativ: Berechnung von Werten
MehrAutoboxing - 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
MehrObjekt-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
MehrKapitel 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
MehrEinstieg 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
MehrVariablen 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 Probleme bei Übung 8 [TODO Assistent] Nachbesprechung Übung 9 Aufgabe 1 Spieler Spieler[] spieler = { new ZufallsWortSpieler(), new ZufallsWortSpielerMitGedaechtnis(),
Mehr