Die Welt in unseren Programmen false -1.4E-12. false. Klassen
|
|
- Bella Blau
- vor 5 Jahren
- Abrufe
Transkript
1 Algorithmen und Datenstrukturen Die Welt in unseren Programmen Die Welt in unseren Programmen Wintersemester 2012/13 9. Vorlesung Sortieren von Objekten true "HalloWelt!" false false -1.4E-12 Jan-Henrik Haunert Lehrstuhl für Informatik I bisher mit Objektorientierung Übersicht in Java (Wiederholung Vorkurs) Vererbung Sortieren geometrischer Formen abstrakte und Methoden Mehrfachvererbung Eine Klasse definiert gemeinsame Eigenschaften einer Menge von Objekten. Jedes Objekt ist Instanz einer Klasse (oder ein Feld). Klasse Eine Klasse definiert gemeinsame Eigenschaften einer Menge von Objekten. Jedes Objekt ist Instanz einer Klasse (oder ein Feld). Attribute sind Datenelemente, die in jedem Objekt einer Klasse gleichermaßen enthalten sind und von jedem Objekt mit individuellen Werten repräsentiert werden können. Objekt Beispiel: //der Strassenname //die Postleitzahl //der Ortsname
2 Beispiel: Bezeichner der Klasse (Konvention: Beginn mit Großbuchstabe) Beispiel: Datentyp Attribute Bezeichner Beispiel: muss in Datei Adresse.java gespeichert werden! public class Adressbuch { public class Adressbuch { //Instantiierung: public class Adressbuch { //Instantiierung: //Setze Attributwerte: System.out.print(a.str + ", " + a.plz + " " + a.ort); System.out.print(a.str + ", " + a.plz + " " + a.ort); System.out.print(a.str + ", " + a.plz + " " + a.ort);
3 public class Adressbuch { //Instantiierung: //Setze Attributwerte: //Ausgabe System.out.print(a.str + ", " + a.plz + " " + a.ort); public class Adressbuch { Adresse b = a; b.ort = "Nuernberg"; System.out.println(a.str + ", " + a.plz + " " + a.ort); System.out.println(b.str + ", " + b.plz + " " + b.ort); Adresse b = a; b.ort = "Nuernberg"; a schablone legt neue Karteikarte an: str plz ort System.out.println(a.str + ", " + a.plz + " " + a.ort); System.out.println(b.str + ", " + b.plz + " " + b.ort); Karteikarte wird ausgefüllt: b zeigt auf dieselbe Instanz wie a: aktualisiere b.ort und damit auch a.ort Adresse b = a; b.ort = "Nuernberg"; a str plz ort Am Hubland Wuerzburg Adresse b = a; b.ort = "Nuernberg"; b a str plz ort Am Hubland Wuerzburg Adresse b = a; b.ort = "Nuernberg"; b a str plz ort Am Hubland Nuernberg System.out.println(a.str + ", " + a.plz + " " + a.ort); System.out.println(b.str + ", " + b.plz + " " + b.ort); System.out.println(a.str + ", " + a.plz + " " + a.ort); System.out.println(b.str + ", " + b.plz + " " + b.ort); System.out.println(a.str + ", " + a.plz + " " + a.ort); System.out.println(b.str + ", " + b.plz + " " + b.ort);
4 Adresse b = a; b.ort = "Nuernberg"; System.out.println(a.str + ", " + a.plz + " " + a.ort); System.out.println(b.str + ", " + b.plz + " " + b.ort); Ausgabe: b a str plz ort Am Hubland Nuernberg Am Hubland, Nuernberg Am Hubland, Nuernberg sind Referenzdatentypen! (genau wie Felder) methoden (static) //testet, ob a und b dieselbe Postleitzahl haben public static boolean habenselbeplz(adresse a, Adresse b) { return (a.plz == b.plz); Beispiel: Adresse b = new Adresse(); b.ort = "Wuerzburg"; name b.plz = 97074; b.str = "Zeppelinstrasse"; if (Adresse.habenSelbePlz(a, b)) System.out.println("a und b haben dieselbe PLZ"); Instanzmethoden (nicht static) //testet, ob this dieselbe Postleitzahl wie a hat public boolean hatselbeplz(adresse a) { return (this.plz == a.plz); Beispiel: Adresse b = new Adresse(); Bezeichner b.ort = "Wuerzburg"; b.plz = 97074; einer Instanz b.str = "Zeppelinstrasse"; if (a.hatselbeplz(b)) System.out.println("a und b haben dieselbe PLZ"); public static void insertionsort(int[] a) { int key = a[j]; while (i >= 0 && a[i] > key) { i--; Java-Code: y p 1 public class Punkt { public double x; public double y; Voraussetzung fürs Definition einer Ordnung p 2 p 4 p 3 x UML-Diagramm: +x:double +y:double p i < p j genau dann, wenn p i.x < p j.x oder Punkt ( p i.x = p j.x und p i.y < p j.y) = lexikographische Ordnung
5 Umsetzung in Java: public class Punkt { public double x; public double y; /* gibt Wert < 0 fuer (this < p), Wert > 0 fuer (this > p) und 0 fuer (this = p) zurueck */ public int compareto(punkt p) { if (this.x < p.x) return -1; if (this.x == p.x) { if (this.y < p.y) return -1; if (this.y == p.y) return 0; return 1; UML-Diagramm: +x:double +y:double Punkt +compareto(punkt):int Achtung! Eine Ordnung ist immer transitiv: a > b und b > c a > c Entsprechend in Java: a.compareto(b) > 0 und b.compareto(c) > 0 a.compareto(c) > 0 Einhaltung dieser Bedingung liegt in der Verantwortung des Programmierers! Achtung! Eine Ordnung ist immer transitiv: a > b und b > c a > c Entsprechend in Java: a.compareto(b) < 0 und b.compareto(c) < 0 a.compareto(c) < 0 Einhaltung dieser Bedingung liegt in der Verantwortung des Programmierers! Achtung! Eine Ordnung ist immer transitiv: a > b und b > c a > c Entsprechend in Java: a.compareto(b) == 0 und b.compareto(c) == 0 a.compareto(c) == 0 Einhaltung dieser Bedingung liegt in der Verantwortung des Programmierers! Achtung! Bedingung 2: a > b a = b b < a b = a Entsprechend in Java: a.compareto(b) > 0 b.compareto(a) < 0 a.compareto(b) == 0 b.compareto(a) == 0 Einhaltung dieser Bedingung liegt in der Verantwortung des Programmierers! Achtung! Bedingung 3: a = b a = b und c > b c > a und c < b c < a Entsprechend in Java: a.compareto(b) == 0 und c.compareto(b) > 0 c.compareto(a) > 0 Einhaltung dieser Bedingung liegt in der Verantwortung des Programmierers!
6 Achtung! Bedingung 3: a = b a = b und c > b c > a und c < b c < a Entsprechend in Java: a.compareto(b) == 0 und c.compareto(b) < 0 c.compareto(a) < 0 Einhaltung dieser Bedingung liegt in der Verantwortung des Programmierers! public static void insertionsort(int[] a) { int key = a[j]; while (i >= 0 && a[i] > key) { i--; public static void insertionsort(punkt[] a) { Punkt key = a[j]; while (i >= 0 && a[i].compareto(key) > 0) { i--; Ein Konstruktor für die Klasse Punkt: public class Punkt { public double x; public double y; public Punkt(double myx, double myy) { x = myx; y = myy; /* gibt Wert < 0 fuer (this < p), Wert > 0 fuer (this > p) und 0 fuer (this = p) zurueck */ public int compareto(punkt p) { if (this.x < p.x) return -1; if (this.x == p.x) { if (this.y < p.y) return -1; if (this.y == p.y) return 0; return 1; UML-Diagramm: +x:double +y:double Punkt +Punkt(double, double) +compareto(punkt):int Punkt[] a = new Punkt[4]; a[0] = new Punkt(1, 2); a[1] = new Punkt(1, 1); a[2] = new Punkt(3, 1); a[3] = new Punkt(4, 3); insertionsort(a); for (int i = 0; i < a.length; i++) System.out.println(a[i].x + " " + a[i].y); public static void insertionsort(punkt[] a) { Punkt[] a = new Punkt[4]; a[0] = new Punkt(1, 2); a[1] = new Punkt(1, 1); a[2] = new Punkt(3, 1); Ausgabe: a[3] = new Punkt(4, 3); insertionsort(a); for (int i = 0; i < a.length; i++) System.out.println(a[i].x.x + " " + a[i].y); public static void insertionsort(punkt[] a) {
7 Braucht man für jede Klasse eine neue Sortiermethode? Nein, dafür gibt es Vererbung, Generics... public static void insertionsort(punkt[] a) { Punkt key = a[j]; while (i >= 0 && a[i].compareto(key) > 0) { i--; public class { //ein achsparalleles //der Mittelpunkt public double a; //die Seitenlaenge a = mya; Problem: Punkt p = new Punkt(0.2, 0.4); q = new (p, -1.2); oder q.a = -1.2; erzeugt mit negativer Seitenlaenge. +a:double +(Punkt, double) public class { //ein achsparalleles //der Mittelpunkt private double a; //die Seitenlaenge +(Punkt, double) Lösung: Direkter Zugriff auf a (von Außen) wird verboten. q = new (new Punkt(0.0,0.0),1.0); q.a = 2.0; "The field.a is not visible" public class { //ein achsparalleles //der Mittelpunkt private double a; //die Seitenlaenge +(Punkt, double) Lösung: Direkter Zugriff auf a (von Außen) wird verboten. Zugriff wird über get- und set-methode kontrolliert. public class { //ein //der Mittelpunkt private double r; //der Radius public (Punkt mym, double myr) { setr(myr); return Math.PI * r * r; public void setr(double myr) { if (myr > 0) r = myr; public double getr() { return r; +(Punkt, double)
8 public class { //ein //der Mittelpunkt private double r; //der Radius public (Punkt mym, double myr) { setr(myr); return Math.PI * r * r; public void setr(double myr) { if (myr > 0) r = myr; public double getr() { return r; +(Punkt, double) Gemeinsamkeiten? Jeder und jedes ist eine geometrische Figur +(Punkt, double) +(Punkt, double) Gemeinsamkeiten? Jede hat einen Mittelpunkt. +(Punkt, double) Die Klasse / erbt die Definition des Attributs m von. +(Punkt, double) Gemeinsamkeiten? Für jede kann man den Flächeninhalt berechnen. Gemeinsamkeiten? Die Klasse kann einen eigenen Konstruktor haben. +(Punkt) Gemeinsamkeiten? Eine kann mit einer anderen verglichen werden (zwecks Sortieren). +(Punkt) +compareto():int +(Punkt, double) +(Punkt, double) +(Punkt, double) +(Punkt, double) +(Punkt, double) +(Punkt, double) Aber: Für e und e gelten verschiedene Formeln. Die Methode getflaeche muss überschrieben werden.
9 Klasse in Java: public class { public (Punkt mym) { return 0.0; public int compareto( key) { if (this.getflaeche() > key.getflaeche()) return 1; if (this.getflaeche() < key.getflaeche()) return -1; return 0; Anpassung der Klasse : public class { private double a; Anpassung der Klasse : public class extends { private double a; kennzeichnet Vererbung Anpassung der Klasse : public class extends { private double a; ist bereits in definiert Anpassung der Klasse : public class extends { private double a; ist bereits in definiert Anpassung der Klasse : public class extends { private double a; super(mym); im Konstruktor muss als erstes der Konstruktor der Superklasse aufgerufen werden.
10 Anpassung der Klasse : public class extends { private double a; super(mym); Anpassung der Klasse : public class { private double r; public (Punkt mym, double myr) { setr(myr); return Math.PI * r * r; public void setr(double myr) { if (myr > 0) r = myr; public double getr() { return r; Anpassung der Klasse : public class extends { private double r; public (Punkt mym, double myr) { super(mym); setr(myr); return Math.PI * r * r; public void setr(double myr) { if (myr > 0) r = myr; public double getr() { return r; [] a = new [4]; a[0] = new (new Punkt(0.0, 0.0), 2.0); a[1] = new (new Punkt(1.0, 2.0), 4.0); a[2] = new (new Punkt(2.0, 0.0), 2.0); a[3] = new (new Punkt(0.0, 1.0), 4.0); insertionsort(a); [] a = new [4]; a[0] = new (new Punkt(0.0, 0.0), 2.0); a[1] = new (new Punkt(1.0, 2.0), 4.0); a[2] = new (new Punkt(2.0, 0.0), 2.0); a[3] = new (new Punkt(0.0, 1.0), 4.0); insertionsort(a); Ein ist halt auch eine. [] a = new [4]; a[0] = new (new Punkt(0.0, 0.0), 2.0); a[1] = new (new Punkt(1.0, 2.0), 4.0); a[2] = new (new Punkt(2.0, 0.0), 2.0); a[3] = new (new Punkt(0.0, 1.0), 4.0); insertionsort(a); for (int i = 0; i < a.length; i++) System.out.println(a[i].getClass().toString() + " " + a[i].getflaeche()); public static void insertionsort([] a) { for (int i = 0; i < a.length; i++) System.out.println(a[i].getClass().toString() + " " + a[i].getflaeche()); public static void insertionsort([] a) { for (int i = 0; i < a.length; i++) System.out.println(a[i].getClass().toString() + " " + a[i].getflaeche()); public static void insertionsort([] a) {
11 public static void insertionsort([] a) { key = a[j]; while (i >= 0 && a[i].compareto(key) > 0) { i--; public static void insertionsort([] a) { key = a[j]; while (i >= 0 && a[i].compareto(key) > 0) { i--; compareto ruft die richtige Flächenmethode auf (d.h., die Implementierungen für e und e). public static void insertionsort([] a) { key = a[j]; Ausgabe: while (i >= 0 && a[i].compareto(key) > 0) { class i--; 4.0 class 16.0 class class Vorteil der objektorientierten Programmierung: Entwickler A möchte e nach Flächeninhalt sortieren. A braucht nur noch Klasse zu implementieren und dabei als Unterklasse von zu definieren. Dann kann er insertionsort aus Sortierverfahren zum Sortieren verwenden. Achtung: Methode getflaeche muss in Klasse getflaeche():double implementiert sein! Entwicklerin B hat bereits Klasse Sortierverfahren und programmiert. Sortierverfahren +(Punkt) +insertionsort([]) +compareto():int Vorteil der objektorientierten Programmierung: Achtung: Methode getflaeche muss in Klasse getflaeche():double implementiert sein! Das sollte Entwicklerin B anderen Entwicklern mitteilen! Dazu kann B Klasse und Methode getflaeche als abstract definieren. Sortierverfahren +(Punkt) +insertionsort([]) +compareto():int Eine abstrakte Methode einer Klasse muss in jeder Unterklasse von implementiert werden. Eine abstrakte Klasse ist eine Klasse, die eine abstrakte Methode enthält. Namen von abstrakten und Methoden werden in UML kursiv geschrieben. Sortierverfahren +insertionsort([]) getflaeche():double +(Punkt) +compareto():int
12 Eine abstrakte Methode einer Klasse muss in jeder Unterklasse von implementiert werden. Eine abstrakte Klasse ist eine Klasse, die eine abstrakte Methode enthält. Abstrakte und Methoden werden in Java durch das Schlüsselwort abstract gekennzeichnet. Methodenrumpf entfällt! public abstract class { public (Punkt mym) { public abstract double getflaeche(); public int compareto( key) {... abstrakte und Methoden Klasse als abstrakte Klasse: public abstract class { public (Punkt mym) { Auf öffentliche Konstruktoren sollte verzichtet werden! public abstract double getflaeche(); public int compareto( key) { if (this.getflaeche() > key.getflaeche()) return 1; if (this.getflaeche() < key.getflaeche()) return -1; return 0; Von einer abstrakten Klasse können keine Instanzen erzeugt werden: Punkt p = new Punkt(0.0, 0.0); g = new (p); "Cannot instantiate the type " abstrakte und Methoden Klasse als abstrakte Klasse: public abstract class { Kann nur noch von protected (Punkt mym) { Unterklassen aufgerufen werden! public abstract double getflaeche(); public int compareto( key) { if (this.getflaeche() > key.getflaeche()) return 1; if (this.getflaeche() < key.getflaeche()) return -1; return 0; Von einer abstrakten Klasse können keine Instanzen erzeugt werden: Punkt p = new Punkt(0.0, 0.0); g = new (p); "Cannot instantiate the type " [] a = new [4]; a[0] = new (new Punkt(0.0, 0.0), 2.0); a[1] = new (new Punkt(1.0, 2.0), 4.0); a[2] = new (new Punkt(2.0, 0.0), 2.0); a[3] = new (new Punkt(0.0, 1.0), 4.0); insertionsort(a); Hier kein Kostruktoraufruf! Feld zum Speichern von Objekten der Klasse wird erstellt. Das ist erlaubt! for (int i = 0; i < a.length; i++) System.out.println(a[i].getClass().toString() + " " + a[i].getflaeche()); public static void insertionsort([] a) { Landtier public double getgewichtskraft() { return masse * 9.81; Mehrfachvererbung Tier +masse:double +volumen:double Wassertier masse in kg, volumen in m 3 public double getgewichtskraft() { double auftrieb = volumen * ; return masse * auftrieb; Landtier Mehrfachvererbung Tier +masse:double +volumen:double Frosch Frosch f = new Frosch(); f.masse = 0.2; f.volumen = 0.005; System.out.println(f.getGewichtskraft()); Wassertier masse in kg, volumen in m 3?
13 Mehrfachvererbung Tier +masse:double +volumen:double masse in kg, volumen in m 3 Dafür gibt es Interfaces... Interfaces Landtier Wassertier Frosch In Java ist Mehrfachvererbung verboten!?
Sortieren von Objekten
Algorithmen und Datenstrukturen Wintersemester 2013/14 18. Vorlesung Sortieren von Objekten Krzysztof Fleszar Lehrstuhl für Informatik I 1 Die Welt in unseren Programmen 1.357374356-4.526426 25236748458
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
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
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 3 29.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klassen ableiten
MehrKapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
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
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
MehrProgrammierung Nachklausurtutorium
Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel
MehrProgrammieren 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
MehrInstitut 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Übersicht. Berechnung der Potenz für zwei ganze Zahlen Klausuraufgabe SS 2010! Berechnung der Cosinus-Funktion Klausuraufgabe WS 2010/2011!
Algorithmen und Datenstrukturen Wintersemester 2012/13 8. Vorlesung Algorithmen in Java Jan-Henrik Haunert Lehrstuhl für Informatik I Übersicht Berechnung der Potenz für zwei ganze Zahlen Klausuraufgabe
MehrAbgabe: keine Pflichtabgabe (vor 12 Uhr) Aufgabe 10.1 (P) Vererbung Gegeben seien folgende Java-Klassen:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 10 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
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
MehrAbstrakte Klassen und Interfaces
Abstrakte Klassen und Interfaces Thomas Schwotzer 1 Einführung Wir haben uns mit Vererbung und Polymorphie beschäftigt. Klassen sind so in der Lage, ableitenden Klassen Zugriff auf Member und Methoden
MehrIT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1
IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft
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
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
MehrTafelü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
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
MehrHeute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.
Heute Nachbetrachtung Wissensüberprüfung Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.2015 IT I - VO 9 1 Organisatorisches Zwischentest findet am 16.12. von 17:30 bis
MehrJava für Bauingenieure
1 JAVA für Bauingenieure Alexander Karakas SS 2008 Objektorientierte Programmierung 30.04.2008, CIP Pool Objektorientierte Programmierung Übersicht 2 Klasse und Objekt Polymorphismus und Vererbung Klassen
Mehr1 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
Mehr6. Globalübung (zu Übungsblatt 8)
6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006
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:
MehrRepetitorium 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
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
MehrFAKULTÄT FÜR INFORMATIK
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2007/2008 Praktikum Grundlagen der Programmierung Lösungsvorschläge zu Blatt 8 F. Forster, T.
MehrProbeklausur Java Einführung in die Informatik. Wintersemester 2016/2017
Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2016/2017 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung
Mehr1. Abstrakte Klassen
1. Abstrakte Klassen Lernziele 1. Abstrakte Klassen Lernziele: Das Konzept abstrakter Klassen und abstrakter Methoden kennen und verstehen, in der Lage sein, abstrakte Klassen und Methoden in Java zu formulieren,
MehrVorkurs 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
MehrBeispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
MehrProgrammierkurs Java
Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie
MehrFH 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
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
Mehr14. Java Objektorientierung. Klassen, Vererbung, Kapselung
427 14. Java Objektorientierung Klassen, Vererbung, Kapselung Objektorientierung: Verschiedene Aspekte 428 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen
Mehr// compiliert, aber Programmabbruch zur Laufzeit: einesuppe = ((EßbarerPilz)einPilz).kochen();
Typecast class Pilz void suchen() void sammeln() class EßbarerPilz extends Pilz Suppe kochen() Suppe einesuppe = new Suppe(); return einesuppe; class GiftPilz extends Pilz void entsorgen() class Suppe
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
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
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
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;
MehrProbeklausur Java Einführung in die Informatik. Wintersemester 2017/2018
Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2017/2018 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Objektorientierung in C++ (3) Aspekte der Vererbung (1) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 546 Zuweisung bei Vererbung Dr. Frank Seifert Vorlesung
MehrTeil 2-3. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II
Teil 2-3. Vorlesung Modul: Programmierung B-PRG Professur für Datenbanken und Informationssysteme Dr. Karsten Tolle tolle@dbis.cs.uni-frankfurt.de 1 Wrapper-Klassen Alle primitive Datentypen haben eine
MehrJAVA 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
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
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
MehrII.4.1 Unterklassen und Vererbung - 1 -
n 1. Grundelemente der Programmierung n 2. Objekte, Klassen und Methoden n 3. Rekursion und dynamische Datenstrukturen n 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen
Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.
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
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
Mehr14. Java Objektorientierung
Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 10: Mehr zur Vererbung und abstrakte Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Mehr zur Vererbung Methoden vererben und überschreiben
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,
MehrKlassen und Konstruktoren in Java
Klassen und Konstruktoren in Java class Circle { int r; Circle(int r) { this.r = r; // 1 Circle(Circle c) { this.r = c.r; // 2 Circle() { r = 1; // 3...... Circle a = new Circle(2); // Konstruktor 1 Circle
MehrProgrammierkurs C++ Abstrakte Klassen und Methoden
Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double
MehrVererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 14.1.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 14.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 1 / 11 Übersicht 1
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 3 Lösungsvorschlag Objektorientierte Programmierung 08. 05. 2006 Lösung 8 (Java und UML-Klassendiagramm
MehrProgrammiertechnik Objektorientierung
Programmiertechnik Objektorientierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was ist Objekt-Orientierung? Objekt-Orientierung (OO) ist nicht völlig scharf definiert, d.h. es gibt unterschiedliche
MehrProf. 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
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
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
MehrVererbung 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
Mehr5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:
MehrAbstrakte Klassen, Interfaces
Abstrakte Klassen, Interfaces INE2, Mittwoch 8.00-9.35 / TE561 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Problemstellung Klassenhierachie - verschiedene geometrische
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Interfaces
10 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Interfaces Aber: Mehrfachvererbung von Klassen ist in Java nicht erlaubt. Ausweg Definition eines Interfaces, z.b.:
MehrEinführung in C# Teil 3. Matthias Nübling
Einführung in C# Teil 3 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
MehrTag 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
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,
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
Mehr00-Wiederholung WIEDERHOLUNG. Programmierkonzepte und Java. Peter Vischer Schule Nürnberg. KW Donnerstag, 22.
WIEDERHOLUNG Programmierkonzepte und Java 1 OBJEKT ORIENTIERTE PROGRAMMIERUNG Was heißt Programmierung? Nicht doch eher Modellierung? Modellierung ist Voraussetzung für guten Code! 2 MODELLIERUNG Realität
MehrTag 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
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
MehrProgrammiervorkurs WS 2013/2014. Instanzmethoden. Termin 6
Programmiervorkurs WS 2013/2014 Instanzmethoden Termin 6 double f = flaeche(p); public static double flaeche(polygon p) { Punkt[] pkt = p.punkte; double f = Polygon.flaeche(p); Besser: Methode in der Klasse
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 11: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes
MehrProgrammieren I. Kapitel 8. Vererbung
Programmieren I Kapitel 8. Vererbung Kapitel 8: Vererbung Ziel: Wesentliches objektorientiertes Konzept kennenlernen Subtypen Idee Probleme und Varianten Vererbung in Java dynamische Bindung abstrakte
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,
MehrName:... Matr.-Nr... Bearbeitungszeit: 120 Minuten
Fakultät IV Elektrotechnik/Informatik Klausur Einführung in die Informatik II für Elektrotechniker Name:... Matr.-Nr.... Bearbeitungszeit: 10 Minuten Bewertung (bitte offenlassen : ) Aufgabe Punkte Erreichte
MehrObjektorientierung III
Lehrstuhl für Bioinformatik Einführung in die Programmierung für Bioinformatiker Prof. B. Rost, Dr. L. Richter Blatt 10 9.1.2017 Objektorientierung III Aufgabe 10.1. Wir sind doch alle gleich In der Vorlesung
MehrInformatik II Übung, Woche 17
Giuseppe Accaputo 28. April, 2016 1. Vererbung 2. Vorbesprechung Übung 8 Plan für heute 3. Erweiterung des Vorlesungsverzeichnis (VVZ) (Live-Programmierung) Informatik II (D-BAUG) Giuseppe Accaputo 2 Vererbung
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
MehrEinführung in die Informatik
Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester
MehrVererbung. Oberklassen und Unterklassen
Vererbung Oberklassen und Unterklassen Vererbung ist ein zentrale Bestandteil der Objektorientierung. Man beschreibt damit die Möglichkeit, Eigenschaften und Methoden vorhandener Klassen auf andere (neue)
Mehr14. Java Objektorientierung
Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen
Mehr5. Abstrakte Klassen
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,
MehrProgrammieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik
Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Prinzip der Vererbung: Aus
MehrPraktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14
Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Iman Kamehkhosh, Marcel Preuß, Henning Timm Übungsblatt 11
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.
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
MehrProgrammieren in Java
Programmieren in Java Einführung in die objektorientierte Programmierung Teil 2 2 Übersicht der heutigen Inhalte Vererbung Abstrakte Klassen Erweitern von Klassen Überladen von Methoden Überschreiben von
MehrVorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3
Vorausgesetzte Grundkenntnisse Einführung in C# Teil 3 Matthias Nübling Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
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
MehrObjektorientierung. 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
Mehr7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen
7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen
Mehr