Liste Programmieren Java Überblick

Größe: px
Ab Seite anzeigen:

Download "Liste Programmieren Java Überblick"

Transkript

1 Liste Programmieren Java Überblick 1 Was ist Java? 3 Vererbung 4 Schnittstellen 5 Innere Klassen 6 Exceptions 7 Funktionsbibliothek 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe 10 Threads 11 GUI-Programmierung mit SWING Prof. Dr. Björn Dreher Liste Programmieren - Java 33 Liste Programmieren Java Überblick: 2. Klassen und Objekte 2.1 Einleitung 2.2 Kapselung 2.3 Ein Stack von chars 2.5 Statische Methoden und Attribute 2.7 Objektreferenzen Prof. Dr. Björn Dreher Liste Programmieren - Java 34

2 2. Klassen und Objekte 2.1 Einleitung Motivation Softwaresysteme sind in den letzten Jahren immer komplexer geworden Dies erfordert ein immer höheres Abstraktionsvermögen, um die Komplexität zu meistern Hinzu kommt der Bedarf nach wiederverwendbarem Code Weiterhin nimmt neben der eigentlichen Problemlösung die Benutzeroberfläche einen immer höheren Stellenwert ein Beides wird durch eine objektorientierte Vorgehensweise erleichtert Prof. Dr. Björn Dreher Liste Programmieren - Java Klassen und Objekte 2.1 Einleitung Objektorientiert heißt, dass Software als eine Kollektion von Objekten organisiert wird, die beides, Zustand (Datenstruktur) und Verhalten (Funktionen) in sich vereinen Objektorientierte Programmiersprachen verallgemeinern das Typkonzept herkömmlicher Programmiersprachen: Neben den (eventuell wieder strukturierten) Attributen (mit Werten) können auch Methoden (Funktionen) Bestandteil der Datenstruktur sein. Klassen sind Mengen von Objekten mit der gleichen Struktur: gleiche zugreifbare Komponenten (Attribute) und gleiches Verhalten (ausführbaren Methoden). Prof. Dr. Björn Dreher Liste Programmieren - Java 36

3 2. Klassen und Objekte 2.1 Einleitung Drei Schlüsselbegriffe Kapselung, Vererbung und Polymorphismus. Vererbung: Klassen können in einer Spezialisierungs-Hierarchie angeordnet werden Speziellere Klassen erben von allgemeineren deren Struktur und Methoden Kfz spezialisiert sich zu Pkw und Lkw. Superklasse Bäume, Unterklassen Laubbäume, Nadelbäume. Polymorphismus Instanzen von verschiedenen Klassen aus einer gemeinsamen Vererbungshierarchie zeigen bei gleichnamigen Methodenaufrufen unterschiedliches Verhalten Prof. Dr. Björn Dreher Liste Programmieren - Java 37 Liste Programmieren Java Überblick: 2. Klassen und Objekte 2.1 Einleitung 2.2 Kapselung: Ein Stack von chars 2.5 Statische Methoden und Attribute 2.7 Objektreferenzen Prof. Dr. Björn Dreher Liste Programmieren - Java 38

4 2.3 Ein Stack von chars Stack als Klasse public class CharStack { // Konstante private final static int EMPTY = -1; // Attribute private int top; private int maxlen; private char [] s; // Methoden public CharStack(int len) { s = new char[len]; maxlen = len; top = EMPTY; Klassenkonstante Konstruktor Prof. Dr. Björn Dreher Liste Programmieren - Java Ein Stack von chars Stack als Klasse (fortgesetzt) public void push(char c) { top++; s[top] = c; public char pop() { return s[top--]; public char topof() { return s[top]; public boolean isempty() { return (top == EMPTY); public boolean isfull() { return (top == maxlen-1); ; Methoden können Attribute nutzen, ohne sie irgendwie qualifizieren zu müssen Attribute gehören zur selben Einheit wie Methoden Methoden bearbeiten ihre Attribute Klasse ist Gültigkeitsbereich der Bezeichner Prof. Dr. Björn Dreher Liste Programmieren - Java 40

5 2.3 Ein Stack von chars Beispiel für Nutzung CharStack data, operands;... data = new CharStack(100); operands = new CharStack(50);... data.push('1'); operand.push('+'); data.push('5');... while (!data.isempty()) { System.out.println( Gepopped: + data.pop());... Kurze Schreibweise CharStack data = new CharStack(100); CharStack operands = new CharStack(50);... Referenzen auf Objekte des Typs CharStack Explizite Erzeugung des Objektes, Wertzuweisung auf Referenz, Aufruf des Konstruktors Aufruf von Methoden Prof. Dr. Björn Dreher Liste Programmieren - Java Ein Stack von chars Überladen einer Methode Unterscheidung durch Signatur Methodenname, Anzahl Parameter, Typen der Parameter Rückgabetyp geht dabei nicht ein Beispiel (wenn auch nicht sehr sinnvoll) Zusätzliche Funktion pop mit einem int Parameter, der die Anzahl von Elementen, die gepoppt werden sollen, angibt (Ergebnis ist nur das letzte Element) public char pop() { return s[top--]; public char pop(int n) { while (n-- > 1) top--; return s[top--]; n >= 1 angenommen Prof. Dr. Björn Dreher Liste Programmieren - Java 42

6 2.3 Ein Stack von chars Aufrufe data.pop(); data.pop(5); // Standard pop Operation // Mehrfache pop Operation Wie bei jeder Objekt-Variablen werden durch CharStack s, t, u; zunächst nur drei Referenzen auf Stacks definiert Die eigentlichen Objektinstanzen müssen noch erzeugt werden: s = new CharStack(10); t = new CharStack(100); u = new CharStack(1000); Prof. Dr. Björn Dreher Liste Programmieren - Java Ein Stack von chars Für jede Instanz gilt: Jede hat ihren privaten Datenbereich Die Methoden können auf ihre Daten angewandt werden Sie sind fester Bestandteil der Klasse Zugriffsrechte private protected package (kein Schlüsselwort!) public Genauer später! Prof. Dr. Björn Dreher Liste Programmieren - Java 44

7 Liste Programmieren Java Überblick: 2. Klassen und Objekte 2.1 Einleitung 2.2 Kapselung 2.3 Ein Stack von chars 2.5 Statische Methoden und Attribute 2.7 Objektreferenzen Prof. Dr. Björn Dreher Liste Programmieren - Java 45 Eigene Klasse Socke: class Socke { public String farbe; // Öffentlich sichtbar public int gewicht; // Öffentlich sichtbar private boolean isttrocken; // Außen nicht sichtbar public void trockne() { isttrocken = true; // Methoden sind meist // öffentlich public void wasche() { isttrocken = false; public boolean isttrocken() { return isttrocken; Prof. Dr. Björn Dreher Liste Programmieren - Java 46

8 Eigene Klasse SockenDemo: Nicht initialisierte Referenz class SockenDemo { public static void main(string args[]) { Socke meinesocke; meinesocke = new Socke(); Erzeuge neues Objekt meinesocke.farbe = "rot"; Rufe Konstruktor auf meinesocke.gewicht = 565; Weise Referenz zu meinesocke.wasche(); System.out.println("Ist die Socke trocken? " + meinesocke.isttrocken()); Prof. Dr. Björn Dreher Liste Programmieren - Java 47 Parameterübergabe Objekte immer als Referenzen: class Waschmaschine { static void auswaschen(socke s) { s.farbe = "weiß"; public class ZuOftGewaschen { public static void main(string args[]) { Socke omissocke = new Socke(); omissocke.farbe = "schwarz"; System.out.println(omisSocke.farbe); Waschmaschine.auswaschen(omisSocke); System.out.println(omisSocke.farbe); Übergabe Objektreferenz Prof. Dr. Björn Dreher Liste Programmieren - Java 48

9 Die this-referenz Wird (unsichtbar) an jeden Konstruktor und jede Methode übergeben Zeigt auf aktuelles Objekt Anwendungen Nutzung überdeckter Objektvariablen (Attribute) Hintereinanderschalten mehrerer Methodenaufrufe für dasselbe Objekt Prof. Dr. Björn Dreher Liste Programmieren - Java 49 Die this-referenz Nutzung überdeckter Objektvariablen (Attribute) class Punkt { int x, y; void setzeposition(int x, int y) { this.x = x; this.y = y; Prof. Dr. Björn Dreher Liste Programmieren - Java 50

10 Die this-referenz Hintereinanderschalten mehrerer Methodenaufrufe für dasselbe Objekt public class GoOn { private int value; public int getvalue() { return value public GoOn inc() { value++; return this; Liefert Referenz auf sich selbst zurück public static void main(string args[]) { System.out.println(new GoOn().inc().getValue()); // 1 GoOn ref = new GoOn(); ref.inc().inc().inc(); System.out.println( ref.getvalue() ); // 3... Prof. Dr. Björn Dreher Liste Programmieren - Java 51 Graphische Darstellung einer Klasse Unified Modeling Language (UML) Socke +farbe: String +gewicht: int -isttrocken: boolean +trockne(): void +wasche(): void +isttrocken: boolean Name der Klasse Attribute + : public - : private Methoden Prof. Dr. Björn Dreher Liste Programmieren - Java 52

11 Assoziation zwischen Klassen Austausch von Nachrichten zwischen Objekten Objekte müssen sich kennen Es besteht eine Assoziation zwischen ihnen Wichtigstes Mittel zur Bildung von Objektverbänden Socke +farbe: String +gewicht: int - isttrocken: boolean +produzent: Hersteller produzent Hersteller Socke kennt Ihren Hersteller Hier: Gerichtete Assoziation Einfache Realisierung mit Hilfe einer Referenz produzent Prof. Dr. Björn Dreher Liste Programmieren - Java 53 Klassen Socke und Hersteller: class Socke { public String farbe; public int gewicht; private boolean isttrocken; public Hersteller produzent;... class Hersteller { //... Prof. Dr. Björn Dreher Liste Programmieren - Java 54

12 Sichtbarkeiten Innerhalb einer Klasse sind alle Attribute und Methoden sichtbar Sichtbarkeit außerhalb der Klasse private von außen nicht zugreifbar public von überall außen zugreifbar keine Angabe von allen Klassen desselben Packages zugreifbar protected (in Verbindung mit Vererbung) Von allen Nachfahrenklassen und von allen Klassen desselben Packages zugreifbar Prof. Dr. Björn Dreher Liste Programmieren - Java 55 Sichtbarkeiten: Beispiel class Password { private String pass = ""; void setpassword(string oldpass, String newpass) { if (oldpass!= null && oldpass.equals(pass)) { pass = newpass; System.out.println("Passwort gesetzt!"); else System.out.println("Passwort konnte nicht gesetzt " + "werden!"); Prof. Dr. Björn Dreher Liste Programmieren - Java 56

13 Sichtbarkeiten: Beispiel: Hauptprogramm public class PassDemo { public static void main(string args[]) { Password pwd = new Password(); pwd.setpassword("", "Geheim"); pwd.setpassword("geheim", "NeuGeheim"); System.out.println(pwd.pass); // Fehler!!! Attribut pass ist private! Prof. Dr. Björn Dreher Liste Programmieren - Java 57 Sichtbarkeiten: Regeln Attribute sind meistens private Zugriff über public Methoden Lokale Methoden können private sein Gruppen von Klassen können über Default-Sichtbarkeiten (package) miteinander kommunizieren Bei Vererbung werden Methoden und Attribute, die von der Nachfahrenklasse (und von Klassen im selben Package) verwendet werden sollen, aber nicht von anderen Klassen, als protected gekennzeichnet Prof. Dr. Björn Dreher Liste Programmieren - Java 58

14 Zugriffsmethoden für Attribute Direkter Zugriff kann von Nachteil sein Einhaltung von Wertebereichen set-zugriffsmethode kann dies sicherstellen Abhängigkeiten zwischen mehreren Attributen Kontostand und Soll/Haben-Attribut Geheimnisprinzip für interne Realisierung Datentyp kann durch Zugriffsmethode abgeschottet werden Übliche Vorgehensweise: Attribute sind private Es gibt öffentliche Zugriffsmethoden: get- und set-methoden Prof. Dr. Björn Dreher Liste Programmieren - Java 59 Zugriffsmethoden für Attribute class Person { private int age; public int getage() { return age; public void setage(int age) { if (age >= 0) this.age = age; Prof. Dr. Björn Dreher Liste Programmieren - Java 60

15 Liste Programmieren Java Überblick: 2. Klassen und Objekte 2.1 Einleitung 2.2 Kapselung 2.3 Ein Stack von chars 2.5 Statische Methoden und Attribute 2.7 Objektreferenzen Prof. Dr. Björn Dreher Liste Programmieren - Java Statische Methoden und Attribute Normale Attribute und Methoden Immer mit genau einer Objektinstanz verbunden Attribute kennzeichnen den Zustand dieses Objektes Methoden ändern oder lesen den Zustand dieses Objektes Klassenattribute Nicht mit bestimmter Objektinstanz verbunden Gehört zur Klasse alleine Existiert nur einmal pro Klasse Gleich für alle Objektinstanzen Integer.MAX_INTEGER Math.PI Math.E Zähler der existierenden Instanzen Prof. Dr. Björn Dreher Liste Programmieren - Java 62

16 2.5 Statische Methoden und Attribute Klassenmethoden Nicht mit bestimmter Objektinstanz verbunden Gehört zur Klasse alleine Unabhängig von Objektattributen Kann sie nicht benutzen Beispiele Math.sin(double x) Math.max(int a, int b) main-funktion einer Klasse Erzeugt oft erst eine Instanz der Klasse Prof. Dr. Björn Dreher Liste Programmieren - Java Statische Methoden und Attribute Realisierung von Klasseneigenschaften Schlüsselwort static Daher auch: Statische Eigenschaften class LittleHelpers { static double PI2 = Math.PI * Math.PI; static double half(double x, double y) { return (x+y)/2.0; public class StaticUser { public static void main(string args[]) { System.out.println( LittleHelpers.half(LittleHelpers.PI2, Math.E) ); Prof. Dr. Björn Dreher Liste Programmieren - Java 64

17 2.5 Statische Methoden und Attribute Statische Eigenschaften als Objekteigenschaften nutzen Jedes Objekt hat auch Zugriff zu den Klasseneigenschaften LittleHelpers lh = new LittleHelpers(); System.out.println( lh.pi2 ); System.out.println( LittleHelpers.PI2 ); Empfehlung: Zugriff über Klassenbezeichner Klassenmethoden rufen üblicherweise wieder Klassenmethoden auf Für Objektmethoden muss ein Objekt vorhanden sein Klassenmethoden gibt es immer, wenn es die Klasse gibt Objektmethoden sind nur aufrufbar, wenn es eine Objektinstanz gibt Aus Objektmethoden können ohne weiteres Klassenmethoden aufgerufen werden Prof. Dr. Björn Dreher Liste Programmieren - Java Statische Methoden und Attribute Statische Methoden können nur auf Klassenattribute zugreifen Es existiert für sie keine implizite Objektinstanz Auch die this-referenz steht nicht zur Verfügung class Falsch { int a; static void klassenmethode() { a = 1; this.a = 2; Falsch: Kein Klassenattribut Falsch: this-referenz existiert nicht Prof. Dr. Björn Dreher Liste Programmieren - Java 66

18 2.5 Statische Methoden und Attribute Klassenattribute existieren nur einmal pro Klasse Alle Objektinstanzen teilen sich diese Attribute Alle Objekte können sie lesen und verändern Könnte zum Austausch von Informationen zwischen Objekten benutzt werden Analog zu globalen Variablen bei herkömmlicher Programmierung Problematiken: Keine Kapselung Fehlerverursacher schwer zu finden Probleme bei nebenläufigen Zugriffen Prof. Dr. Björn Dreher Liste Programmieren - Java Statische Methoden und Attribute Groß-/Kleinschreibung hilft beim Unterscheiden zwischen Klassenund Objekt-Eigenschaften Klassennamen beginnen mit Großbuchstaben Attribut- und Methodennamen beginnen mit Kleinbuchstaben Math.max(a, b) Math eine Klasse max(a, b) ist Klassenmethode Socke s = new Socke(); s.wasche(); s ist Objektreferenz wasche() ist Objektmethode System.out.println("Hello world!"); out ist Klassenattribut der Klasse System, referenziert ein Objekt println(" ") ist Objektmethode dieses Objektes Prof. Dr. Björn Dreher Liste Programmieren - Java 68

19 2.5 Statische Methoden und Attribute Konstanten Statische Variablen mit dem Zusatz final class SockenTyp { static final int PUNKTIERT = 1, GEFLECKT = 2, GESTREIFT = 3; Spätere Schreibzugriffe sind nicht möglich Namen von Konstanten werden üblicherweise großgeschrieben Unterstrich zur Trennung von Wortteilen: PI_QUADRAT Prof. Dr. Björn Dreher Liste Programmieren - Java 69 Liste Programmieren Java Überblick: 2. Klassen und Objekte 2.1 Einleitung 2.2 Kapselung 2.3 Ein Stack von chars 2.5 Statische Methoden und Attribute 2.7 Objektreferenzen Prof. Dr. Björn Dreher Liste Programmieren - Java 70

20 Erzeugung Mit dem new-operator Speicherbereich: Heap (Haufen), System-Speicherbereich für dynamische Datenstrukturen Vernichtung In Java automatisch durch den Garbage-Collector Wenn das Objekt nicht mehr referenziert wird Garbage-Collector läuft im Hintergrund in bestimmten Zeitabständen Prof. Dr. Björn Dreher Liste Programmieren - Java 71 Erzeugung im Detail new-operator legt Speicherbereich für Objekt aufgrund der Klassendefinition an Bestimmte Methode (Konstruktor) wird zur Initialisierung des Objektes aufgerufen Hat den Namen der Klasse (großgeschrieben, wie die Klasse) Hat keinen Ergebnistyp Wird oft mit verschiedenen Parameterversorgungen (Signaturen) überladen Initialisierung des Objektes zu einem konsistenten Zustand Wenn kein anderer Konstruktor definiert ist, wird automatisch der Default-Konstruktor erzeugt Ohne Parameter Macht nichts Kann auch explizit definiert werden Referenz auf Objekt als Ergebnis Prof. Dr. Björn Dreher Liste Programmieren - Java 72

21 Konstruktor-Beispiel class Socke { Socke() { farbe = "schwarz"; groesse = 40; Default-Konstruktor Socke( String farbe ) { this.farbe = farbe; groesse = 40; Socke( String farbe, int groesse ) { this.farbe = farbe; this.groesse = groesse; private String farbe; private int groesse; Aufruf: Socke s1 = new Socke(); Socke s2 = new Socke("weiss"); Socke s3 = new Socke("grau", 8); Prof. Dr. Björn Dreher Liste Programmieren - Java 73 Anderen Konstruktor der gleichen Klasse aufrufen Wiederverwendung von Code class Socke { Geht bei C++ nicht! Socke( String farbe ) { this.farbe = farbe; // this ist hier die Referenz auf // das eigene Objekt groesse = 40; Socke() { this( "schwarz" ); // this() leitet hier an anderen // Konstruktor weiter private String farbe; private int groesse; Prof. Dr. Björn Dreher Liste Programmieren - Java 74

22 Anderen Konstruktor der gleichen Klasse aufrufen Wiederverwendung von Code: Beispiel der Java Klasse Point public class Point extends Point2D implements java.io.serializable { public int x, y; public Point() { this(0, 0); public Point(Point p) { this(p.x, p.y); public Point(int x, int y) { this.x = x; this.y = y; Prof. Dr. Björn Dreher Liste Programmieren - Java 75 Anderen Konstruktor der gleichen Klasse aufrufen Einschränkungen Aufruf von this() muss in der ersten Zeile stehen Als Parameter können an this() keine Objektattribute übergeben werden Attribute sind möglicherweise noch nicht präsent Das Objekt wird gerade erst initialisiert Möglich sind allerdings statische Konstanten class Socke { final int ringelanzahl = 4; static final int RINGEL_ANZAHL = 4; Socke( String g, int anzringel ) {... Socke( String f ) { // this( f, ringelanzahl ); // nicht erlaubt this( f, RINGEL_ANZAHL ); // das geht statt dessen Prof. Dr. Björn Dreher Liste Programmieren - Java 76

23 Default Initialisierung Alle Attribute eines Objektes werden grundsätzlich mit Default-Werten initialisiert Primitive Datentypen: 0 oder false Referenzen: null Von Java garantiert Initialisierung von Klassenattributen (statische Attribute) Automatisch wie oben; nur einmal, wenn Klasse zum ersten Mal geladen wird Oder explizit: class StaticInit { static int i; static { i = 2; Prof. Dr. Björn Dreher Liste Programmieren - Java 77 Finale Werte können auch noch im Konstruktor gesetzt werden Nicht gut für Lesbarkeit des Codes class VariableConstant { final static int MWST; // hier steht nicht = irgendwas final String ISBN; // hier auch nicht. static { if ( 2 > 1 ) MWST = 7; else MWST = 16; VariableConstant() { ISBN = " "; public static void main( String args[] ) { System.out.println( MWST ); // 7 System.out.println( new VariableConstant().ISBN ); // Prof. Dr. Björn Dreher Liste Programmieren - Java 78

24 Instanzeninitialisierer... private static final int NUMPTS = 100; private int[] data = new int[numpts]; { for (int i = 0; i < NUMPTS; i++) data[i] = i;... Es kann mehrere geben Werden zu Beginn des Konstruktors ausgeführt Nützlich für komplexe Initialisierungen Hauptanwendung: Unterstützung anonymer innerer Klassen (besprechen wir später) Prof. Dr. Björn Dreher Liste Programmieren - Java 79 Zerstören von Objekten Keine explizite Freigabe von Objekten wie in C (free) oder C++ (delete) Nicht mehr verwendete Objekte (welche, zu denen es keine Referenzen mehr gibt) werden von der Garbage Collection freigegeben Thread niedriger Priorität, der immer im Hintergrund läuft Referenz ungültig machen: Auf null setzen In Java gibt es keine Destruktoren wie in C++ Teilweiser Ersatz Methode finalize() Keine Garantie, dass sie überhaupt einmal aufgerufen wird Alles in allem: Eine bequeme Lösung für den Programmierer Prof. Dr. Björn Dreher Liste Programmieren - Java 80

25 Liste Programmieren Java Überblick: 2. Klassen und Objekte 2.1 Einleitung 2.2 Kapselung 2.3 Ein Stack von chars 2.5 Statische Methoden und Attribute 2.7 Objektreferenzen Prof. Dr. Björn Dreher Liste Programmieren - Java Objektreferenzen Null-Referenz Point p = new Point(); p ist eine Referenz Erhält Wert erst als Ergebnis des new-operators Point p = null; null ist vordefinierte Konstante: null-referenz Sagt, dass p auf kein Objekt verweist Typenlos: Kann jeder Referenz zugewiesen werden Ist nicht in primitiven Datentyp 0 umwandelbar Aufruf einer Methode oder eines Attributs einer mit null initialisierten Referenz NullPointerException Prof. Dr. Björn Dreher Liste Programmieren - Java 82

26 2.7 Objektreferenzen Null-Referenz Überprüfung, ob Referenz initialisiert ist: if ( p!= null && p.x >=10 )... Zuweisung an Referenzen Mehrere Referenzen können auf dasselbe Objekt zeigen Point p = new Point(); Point q = p; q erhält den Wert der Referenz p zugewiesen Zeigt auf dasselbe Objekt Objekt wird nicht kopiert! Änderung über Referenz p betrifft genauso Referenz q p.x = 10; System.out.println(q.x); // Resultat ist 10 Prof. Dr. Björn Dreher Liste Programmieren - Java Objektreferenzen Vergleich mit der Kopie von primitiven Werten Primitive Variablen werden per Wert kopiert int i = 2; int j;... j = i; // Erhält Kopie des ursprünglichen // Wertes zugewiesen System.out.println(j); // Ergebnis ist 2 i = 3; System.out.println(j); // Ergebnis ist immer noch 2 Prof. Dr. Björn Dreher Liste Programmieren - Java 84

27 2.7 Objektreferenzen Gleichheit von Objekten Zuweisung mit = schafft zusätzliche Kopie einer Referenz auf ein bereits existierendes Objekt Vergleichsoperator == testet für alle Datentypen die Gleichheit der entsprechenden Werte Bei primitiven Datentypen liefert das erwartete Ergebnis Bei Referenzen werden die Werte der Referenzen verglichen Gleichheit, wenn sie auf dasselbe Objekt zeigen Es wird nicht geprüft, ob die beiden referenzierten Objekte dieselben Werte besitzen! Point p = new Point(); p.x = 12; Point q = p; Point r = new Point(); r.x = 12; if ( p == q ) // ist wahr, da p und q dasselbe Objekt // referenzieren if ( p == r ) // ist falsch, da p und r zwei verschiedene // Punkt-Objekte referenzieren, die zufällig // dieselben Koordinaten haben Prof. Dr. Björn Dreher Liste Programmieren - Java Objektreferenzen Gleichheit von Objekten: Die Methode equals() Jede Klasse kann diese Methode implementieren, um die Gleichheit zweier verschiedener Objekte festzustellen Damit definiert equals(), was für eine bestimmte Klasse Gleichheit bedeutet Point a = new Point( 10, 10 ); Point b = new Point( 10, 10 ); if ( a == b ) // false... if ( a.equals(b) ) // true... Bereits die Wurzelklasse Object definiert eine Methode equals() Ergebnis ist true, wenn beide Argumente dasselbe Objekt referenzieren public boolean equals( Object obj ) { return ( this == obj ); Dasselbe, wie Vergleichsoperator (==) Prof. Dr. Björn Dreher Liste Programmieren - Java 86

28 2.7 Objektreferenzen Gleichheit von Objekten: Die Methode equals() Will man die eigenen Objekte auf Gleichheit vergleichen, muss man equals() überschreiben Für die Point-Klasse public boolean equals( Object obj ) { if ( obj instanceof Point ) { Point pt = (Point)obj; return (x == pt.x) && (y == pt.y); return super.equals(obj); Prof. Dr. Björn Dreher Liste Programmieren - Java 87

Programmieren 2 Java Überblick

Programmieren 2 Java Überblick Programmieren 2 Java Überblick 2 Vererbung 3 Schnittstellen 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10 Applets

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

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

Tag 8 Repetitorium Informatik (Java)

Tag 8 Repetitorium Informatik (Java) Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

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

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

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

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält

Mehr

Philipp Güttler Objektorientierung und komplexe Datentypen

Philipp Güttler Objektorientierung und komplexe Datentypen Philipp Güttler 23.04.2008 Objektorientierung und komplexe Datentypen Seite 2 Was bedeutet objekt-orientiert? Programmierung ist die Umsetzung von Sachverhalten und Aufgaben Zusammenfassen und Aufteilen

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

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

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

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

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

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

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

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

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann

Mehr

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

Mehr

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

Kapitel 10. Verweise und Referenzen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 10. Verweise und Referenzen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 10 Verweise und Referenzen Inhalt von Kapitel 10 Verweise und Referenzen 10.1 Das Schlüsselwort this Definition Verwendungszweck Klassenmethoden EINSCHUB: Musterlösung zu Übung 4.1 10.2 Objektreferenzen

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

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

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

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

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen 5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute

Mehr

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Beispiele 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]

Mehr

7. Objektorientierung. Informatik II für Verkehrsingenieure

7. Objektorientierung. Informatik II für Verkehrsingenieure 7. Objektorientierung Informatik II für Verkehrsingenieure Klassen, Objekte und Attribute Buslinie und Haltestellen 3 Haltestellen und deren Eigenschaften Bauplan einer Haltestelle (Struktur) Konkrete

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 (7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik

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

Java Grundlagen 2 - OOP

Java Grundlagen 2 - OOP Institut für Programmierung und Reaktive Systeme Java Grundlagen 2 - OOP Markus Reschke 20.08.2014 Eine kleine Geschichte 1 Spezifikation Es sollen Formen in einer GUI angezeigt werden: Ein Quadrat, ein

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Klassenattribute und -methoden Bieniusa Software Entwicklung 1 2/ 23 Beispiel: Klassenattribute I class Uebungsgruppe

Mehr

Methoden und Wrapperklassen

Methoden und Wrapperklassen Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)

Mehr

Umsetzung einer Klassenkarte in einer Programmiersprache

Umsetzung einer Klassenkarte in einer Programmiersprache Klassen in Java Umsetzung einer Klassenkarte in einer Programmiersprache Objektorientierte Programme bestehen (nur) aus Klassendefinitionen In Klassendefinitionen wird die Struktur der Objekte festgelegt,

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

1 Klassen und Objekte

1 Klassen und Objekte 1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Institut für Programmierung Java Objektorientierte Programmierung Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12 bis 14.10.2016 Technische Universität Braunschweig, IPS Überblick Warum OOP? OOP

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

Programmieren 2 Java Überblick

Programmieren 2 Java Überblick Programmieren 2 Java Überblick 1 Klassen und Objekte 3 Schnittstellen 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen

Mehr

Tag 7 Repetitorium Informatik (Java)

Tag 7 Repetitorium Informatik (Java) Tag 7 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

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

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

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

Theorie zu Übung 8 Implementierung in Java

Theorie 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

Mehr

Objekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E.

Objekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E. Objekte und Klassen INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? typedef struct Konto { double saldo; int id; Konto; Modul "konto" konto.h konto.c Prozedurale Programmierung:

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs Informatik WiSe 17/18 Institut für Programmierung Java Objektorientierte Programmierung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 11. bis 13.10.2017 Technische Universität Braunschweig, IPS Warum OOP? OOP mit Java

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

Algorithmen und Datenstrukturen 06

Algorithmen und Datenstrukturen 06 31. Mai 2012 1 Besprechung Blatt 5 Fragen 2 Objektorientierte Programmierung Allgemein Sichtbarkeit Konstanten 3 Unified Modeling Language (UML) Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Bis jetzt kennen wir (fast) nur primitive Datentypen. Diese entsprechen weitestgehend der Hardware des Rechners (z.b. besitzt ein Rechner Hardware um zwei floats zu addieren).

Mehr

Tafelübung 07 Algorithmen und Datenstrukturen

Tafelübung 07 Algorithmen und Datenstrukturen Tafelübung 07 Algorithmen und Datenstrukturen Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Vererbung Grundlagen Abstrakte

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

7. Übung Informatik II - Objektorientierte Programmierung

7. Übung Informatik II - Objektorientierte Programmierung 7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber

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

Programmieren in Java

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

Mehr

Das Ersetzbarkeitsprinzip

Das Ersetzbarkeitsprinzip Das Ersetzbarkeitsprinzip U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Dieses Ersetzbarkeitsprinzip benötigt man für den Aufruf einer Routine

Mehr

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3 Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................

Mehr

C++ - Objektorientierte Programmierung Konstante und statische Elemente

C++ - Objektorientierte Programmierung Konstante und statische Elemente C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja

Mehr

Programmieren 2 Java Überblick

Programmieren 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

Mehr

AuD-Tafelübung T-B5b

AuD-Tafelübung T-B5b 6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit

Mehr

Die Klasse java.lang.object. Thorsten Treffer

Die Klasse java.lang.object. Thorsten Treffer Die Klasse java.lang.object Thorsten Treffer 6. Dezember 2003 1 java.lang.object Die Klassenhierarchie von Java kann als Baum aufgezeichnet werden, dessen Wurzel die Klasse Object ist. Mit anderen Worten:

Mehr

Folienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Folienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4 Folienpaket 7 Themenschwerpunkte: Methoden in OOP 284 09/2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4 Eine Klasse entwerfen Eine Klasse enthält folgende Information: Name der Klasse (ist auch der

Mehr

Propädeutikum Programmierung in der Bioinformatik

Propädeutikum Programmierung in der Bioinformatik Propädeutikum Programmierung in der Bioinformatik Java Klassen und Objekte Thomas Mauermeier 27.11.2018 Ludwig-Maximilians-Universität München Rückblick Imperative Programmierung Variablen Fallunterscheidungen

Mehr

C++ - Objektorientierte Programmierung Polymorphie

C++ - Objektorientierte Programmierung Polymorphie C++ - Objektorientierte Programmierung Polymorphie hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen C++ - Objektorientierte Programmierung 21.06.16 Seite 1 Polymorphie

Mehr

Fragen zur OOP in Java

Fragen zur OOP in Java - 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...

Mehr

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank... Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: hat Farbe Hubraum Tank kann man Gas geben Bremsen Hoch

Mehr

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue

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

Klassenvariablen und statische Methoden

Klassenvariablen und statische Methoden Klassenvariablen und statische Methoden Softwareentwicklung II (IB) Prof. Dr. Oliver Braun Letzte Änderung: 05.04.2018 17:36 Klassenvariablen und statische Methoden 1/25 Klassenvariablen Klassenvariablen

Mehr

Allgemeines - Prinzipien

Allgemeines - Prinzipien OOP - Prinzipien Allgemeines - Prinzipien OO modelliert die reale Welt als System interagierender Objekte Objekt = gedankliche oder reale Einheit in der Umwelt und/oder in Software Klar definierte Schnittstellen

Mehr

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen Themen der Übung 1 Organisatorisches Methoden und Wrapperklassen 2 Methoden 3 Wrapper-Klassen CoMa-Übung IV TU Berlin 07.11.2012 Organisatorisches: Im Pool nur auf die Abgabeliste setzen, wenn ihr wirklich

Mehr

Java: Der Einstieg. Algorithmen und Datenstrukturen II 1

Java: Der Einstieg. Algorithmen und Datenstrukturen II 1 Java: Der Einstieg Algorithmen und Datenstrukturen II 1 Grundlegendes zu Java: Historisches 1990-1991: Entwicklung der Programmiersprache OAK durch James Gosling von Sun Microsystems (zunächst für Toaster,

Mehr

Prozeduren vs. Funktionen

Prozeduren vs. Funktionen Prozeduren vs. Funktionen Mit der Formalisierung wird auch der Unterschied zwischen Prozeduren und Funktionen noch einmal klar. Der Aufruf beider Varianten bewirkt zunächst das Gleiche: die Eingabevariablen

Mehr

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. ) Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:

Mehr

JAVA 05: Objektorientierte Konzepte

JAVA 05: Objektorientierte Konzepte Lernkartenkurs JAVA 05: Objektorientierte Konzepte panitz Zusammenfassung Dieser Kurs beschäftigt sich mit Grundkonzepten der objektorientierten Programmierung. Was sind Klassen und Objekte? Wie sehen

Mehr

Klassenvariablen und statische Methoden

Klassenvariablen und statische Methoden Softwareentwicklung II (IB) Klassenvariablen und statische Methoden Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 05.04.2018 17:36 Inhaltsverzeichnis Klassenvariablen 1 Definition......................................

Mehr

4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor:

4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor: 4. Vererbung Grundlagen der Vererbung 4. Vererbung 4. Vererbung Grundlagen der Vererbung Idee der Vererbung Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

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

Mehr

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public

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, 4. Mai 2009, c 2009 D.Rösner

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

Gliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D.

Gliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D. Gliederung 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, 4. Mai 2009, c

Mehr

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg Klassen und Objekte Einführung in Java Folie 1 von 28 12. Mai 2011 Ivo Kronenberg Inhalt Objekte Klassendefinitionen Datenelemente (Klassenattribute) Instanzieren von Objekten Konstruktoren Vergleich primitive

Mehr

Programmieren in Java

Programmieren in Java Ein Projekt 2 Wiederholung: new-operator Werte nicht-primitiver Datentypen müssen mit new erzeugt werden Es gibt keine Möglichkeit primitive Daten mit new zu erzeugen Beispiele int[] myarray = new int[]

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Bis jetzt kennen wir (fast) nur primitive Datentypen. Diese entsprechen weitestgehend der Hardware des Rechners (z.b. besitzt ein Rechner Hardware um zwei floats zu addieren).

Mehr

Teil 2: Weitere Aspekte der Objektorientierung

Teil 2: Weitere Aspekte der Objektorientierung Teil 2: Weitere Aspekte der Objektorientierung Klassenvariablen So wie es Instanzvariablen gibt, die zu einer gewissen Instanz (Objekt) gehören und deren Attribute speichern, so gibt es aus Klassenvariablen:

Mehr

6. Globalübung (zu Übungsblatt 8)

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

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Methoden / Funktionen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick 2 Zweck von Methoden 3 Methodendefinition

Mehr

Abschnitt 6: Klassen, Objekte und Methoden in Java

Abschnitt 6: Klassen, Objekte und Methoden in Java Abschnitt 6: Klassen, Objekte und Methoden in Java 6. Klassen, Objekte und Methoden in Java 6.1 Klassen 6.2 Objekte 6.3 Methoden 6.4 Zusammenfassung 6 Klassen, Objekte und Methoden in Java Informatik 2

Mehr

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1 Vererbung 1 11.1 Motivation und Begriffsdefinitionen 11.2 Vorgehensweise und Implementierung 11.3 Arten von Vererbung 11.4 Konstruktoren 11.5 Abstrakte Klasse 11.6 Verschattung 11.7 Wurzelklasse Object

Mehr

Einführung in C# Teil 1. Matthias Nübling

Einführung in C# Teil 1. Matthias Nübling Einführung in C# Teil 1 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,

Mehr

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode

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

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

Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces

Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 / 20 Polymorphie/Späte Bindung Abstrakte Klassen Interfaces 2 / 20 Definition: Polymorphie Der Begriff Polymorphie (manchmal

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Objektorientierung Was ist Objektorientierung Es einige Grundprinzipien, die (fast) allen Definitionen des Begriffs Objektorientierung

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

Objektorientierung. Marc Satkowski 20. November C# Kurs

Objektorientierung. Marc Satkowski 20. November C# Kurs Objektorientierung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Weiterführende Verzweigungen Tertiäre-Verzweigung switch case 2. Schleifen Zählschleife (for) break & continue 3. Objektorientierung

Mehr

Einführung in die Programmierung Blockkurs Java

Einführung in die Programmierung Blockkurs Java Michael Bader 8. 12. April 2002 Dienstag Inhaltsübersicht Variablen: Membervariablen und lokale Variablen Referenzvariablen: Arrays und Objekte anlegen Definition von Funktionen: Methoden Konstruktoren

Mehr

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen Klassenvariablen Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit aller Studentenobjekte.

Mehr