Informatik II Übung 6. Pascal Schärli
|
|
- Chantal Schwarz
- vor 5 Jahren
- Abrufe
Transkript
1 Informatik II Übung 6 pascscha@student.ethz.ch
2 Was gibts heute? Warm-Up Nachbesprechung Serie 5 Best-Of Vorlesung: Klassenhierarichie Abstrakte Klassen Factories Vorbesprechung Serie 6 2
3 Warm - Up
4 Warm Up Basisprüfung 2012 Wie muss man bei den folgenden Codefragmenten die Lücke füllen, um die gewünschte Laufzeit zu erreichen? a) O(n4) i<n2 int a = 0; i<n*n ; i++) { for(int i = 0; for(int j = i/100; j > 0; j--) { a++; b) O(log n) i< int a = 0; 1<<(i*i)<n ; i++) { for(int i = 0;. for(int j = i/100; j > 0; j--) { a++; 4
5 Warm Up int a = 0; for(int i = 0; i < N ; i++) { for(int j = i/100; j > 0; j--) { a++; Hat die selbe Komplexität int a = 0; for(int i = 0; i < N ; i++) { for(int j = i; j > 0; j--) { a++; O(N2) a) O(N2) = O(n4) N = n2 a) O(N2) = O(log(n)) N = 5
6 Warm Up Wie kommt man von i< zu 1<<(i*i)<n? Bitshift: a<<b die Zahl a wird als binärzahl um b Bytes nach links geschoben 5<<2 = 0b101<<2 = 0b10100 = 20 a<<b = a*2b Es gibt auch a>>b, dann würde a um b Bytes nach rechts geschoben werden. i< i*i< 2i*i<n 1<<(i*i) < n 6
7 Nachbesprechung
8 Nachbesprechung U5 Übersichtlichkeit if(i>0){ return true; else{ return false; return i>0; List newlist = new List(value,list); return newlist; return new List(value,list); if(list == null){ return new List(value, null); else{ return new List(value, list); return new List(value, list); 8
9 Nachbesprechung U5 Übersichtlichkeit Ctrl + Shift + F -danke :) 9
10 Nachbesprechung U5A1 public static List add(list list, int value) { return new List(value, list); null 10
11 Nachbesprechung U5A1 public static int size(list list) { if (list == null) return 0; return size(list.next) + 1; size(list.next); 1+3=4 1+size(list.next); 1+2= size(list.next); 1+1=2 8 null 1+size(list.next); 1+0=1 11
12 Nachbesprechung U5A1 public static int sum(list list) { if (list == null) return 0; return list.value + sum(list.next); sum(list.next); 1+33=34 4+sum(list.next); 4+29= sum(list.next); 21+8=29 8 null 8+sum(list.next); 8+0=8 12
13 Nachbesprechung U5A1 public static List last(list list) { if (list == null) return null; if (list.= null) return list; return last(list.next); [List A] [List B] 1 [List C] 4 last(list.next); [List D] last(list.next); [List D] [List D] 21 last(list.next); [List D] 8 null Return list; [List D] 13
14 Nachbesprechung U5A1 public static List sublist(list list, int index) throws IndexOutOfBoundsException { if (list == null index < 0) throw new IndexOutOfBoundsException(); if (index == 0) return list; return sublist(list.next, index-1); Beispiel: sublist(list,2); [List A] [List B] 1 sublist(list.next,1); [List C] [List C] 4 sublist(list.next,0); [List C] [List D] 21 8 null return list; [List C] 14
15 Nachbesprechung U5A1 public static int valueat(list list, int index) throws IndexOutOfBoundsException { if (list == null index < 0) throw new IndexOutOfBoundsException(); if (index == 0) return list.value; return valueat(list.next, index-1); Beispiel: valueat(list,2); 1 4 valueat(list.next,1); valueat(list.next,0); null return
16 Nachbesprechung U5A1 public static int index(list list, int value) throws NoSuchElementException { if (list == null) throw new NoSuchElementException(); if (list.value == value) return 0; return 1 + index(list.next, value); Beispiel: index(list,21); 1 1+index(list.next,21); 1+1=2 4 1+index(list.next,21); 1+0= null return
17 Nachbesprechung U5A2 public static void append(list list, int value) throws IllegalArgumentException { if (list == null) throw new IllegalArgumentException(); u5a1.lists.last(list). new List(value, null); new List(1,null) 1 17
18 Nachbesprechung U5A2 public static void concat(list head, List tail) throws IllegalArgumentException { if (head == null) throw new IllegalArgumentException(); u5a1.lists.last(head). tail; null 18
19 Nachbesprechung U5A2 public static void insertat(list list, int index, int value) throws IndexOutOfBoundsException { if (list == null index < 0) throw new IndexOutOfBoundsException(); if (index == 0) { list. new List(value, list.next); else { insertat(list.next, index-1, value); Beispiel: insertat(list,1); 21 1 insertat(list.next,0); 4 8 null index == 0 19
20 Nachbesprechung U5A2 public static void insertat(list list, int index, List newlist) throws IndexOutOfBoundsException { if (newlist == null) return; if (list == null index < 0) throw new IndexOutOfBoundsException(); if (index == 0) { u5a1.lists.last(newlist). list.next; list. newlist; else { insertat(list.next, index-1, newlist); Beispiel: list1 1,8 list2 4,21 insertat(list1,0,list2); null 20
21 Nachbesprechung U5A2 public static List remove(list list, int index) throws IndexOutOfBoundsException { if (list == null index < 0) throw new IndexOutOfBoundsException(); if (index == 0) return list.next; list. remove(list.next, index-1); return list; Beispiel: remove(list,2); [List A] [List B] 1 list.next=remove(list.next,1); list.next= [List B] return [List A] [List C] 4 [List D] 21 list.next=remove(list.next,0); index == 0; list.next= [List D] return [List B] return [List D] 8 null 21
22 Nachbesprechung U5A3 public static List insertsorted(list list, int value) { if (list == null) return new List(value, null); if (value < list.value) return new List(value, list); list. insertsorted(list.next, value); return list; [List B2] Beispiel: insertsorted(list,8); [List A] [List B] 1 list.next=insertsorted(list.next,8); list.next= [List B] return [List A] 4 list.next=insertsorted(list.next,8); list.next= [List B2] return [List B] 8 [List C] 21 null 8 < 21 return new List(value,list) [List B2] 22
23 Nachbesprechung U5A3 public static List sort(list list) { if (list == null) return null; return insertsorted(sort(list.next), list.value); 23
24 Vorlesung
25 Klassen public class myclass { static Klassenspezifisch für jedes Objekt der Klasse myclass den gleichen Wert int myint; protected static int mystaticint; public int mypublicint; private int myprivateint; private Nur sichtbar in dieser Klasse public void mypublicfunction(int a) { myprivatefunction(a); public Für alle sichtbar protected static void mystaticfunction(int a) { mystaticint = a; protected Nur sichtbar in dieser Klasse und allen Unterklassen package-private (default) private void myprivatefunction(int a) { myprivateint = mystaticint+a; Nur sichtbar für das selbe Paket 25
26 Klassenhierarchie Syntax: public class Auto extends Fahrzeug{ public class Lastwagen extends Auto{ Vererbung dient der Gliederung und Standartisierung der Objekte (so könnte z.b. in Fahrzeug definiert werden, dass jede Erb-Klasse das Attribut Geschwindigkeit hat) 26
27 Klassenhierarchie - Beispiel public class Fahrzeug{ int radzahl; public class Auto extends Fahrzeug{ protected float hubraum; public Auto(float hubraum){ super(4); this.hubraum = hubraum; public class Lastwagen extends Auto{ float capacity; public float gethubraum(){ return hubraum; public Fahrzeug(int radzahl){ this.radzahl = radzahl; public Lastwagen(float hubraum,float capacity){ super(hubraum); this.capacity = capacity; public void sethubraum(float hubraum){ if(hubraum>0) this.hubraum = hubraum; 27
28 Klassenhierarchie - Beispiel Fahrzeug myfahrrad = Fahrzeug myauto = Fahrzeug mylastwagen = new Fahrzeug(2); new Auto(1400); new Lastwagen(80000,50); System.out.println(myFahrrad.radzahl); System.out.println(myAuto.radzahl); System.out.println(myLastwagen.radzahl); myfahrrad.sethubraum(300); myauto.sethubraum(1600); mylastwagen.sethubraum(100000); Output: Fehler beim Kompilieren: Fahrzeug The method sethubraum(int) is undefined for the type Fahrzeug radzahl Auto extends Fahrzeug hubraum gethubraum set Hubraum Lastwagen extends Auto capacity 28
29 Klassenhierarchie Type Casts Warum können wir obwohl wir Objekte vom Typ Auto und Lastwagen haben den Hubraum nicht bestimmen? Bei der Instanzierung vom Objekt myauto Fahrzeug myauto = new Auto(1400); dass myauto vom Typ Fahrzeug ist. myauto hätte aber schon alle Eigenschaften der Klasse Auto, Java weis das nur nicht. Wie kann man also Java sagen, dass myauto trotzdem vom Typ Auto ist? Type Casts (Auto)myAuto Typ Auto 29
30 Klassenhierarchie - Beispiel Fahrzeug myfahrrad = Fahrzeug myauto = Fahrzeug mylastwagen = new Fahrzeug(2); new Auto(1400); new Lastwagen(80000,50); System.out.println(myFahrrad.radzahl); System.out.println(myAuto.radzahl); System.out.println(myLastwagen.radzahl); ((Auto)myFahrrad).setHubraum(300); ((Auto)myAuto).setHubraum(1600); ((Auto)myLastwagen).setHubraum(100000); Fahrzeug Output: Runtime Error: Exception in thread "main" java.lang.classcastexception: Fahrzeug cannot be cast to Auto radzahl Auto extends Fahrzeug hubraum gethubraum set Hubraum Lastwagen extends Auto capacity 30
31 Klassenhierarchie instanceof Achtung bei Type casts Falls der Cast nicht möglich ist, gibt es einen Runtime Error! Wie können wir das verhindern? instanceof Operator gibt zurück, ob ein Objekt gecasted werden kann. if(f instanceof Auto) { System.out.println(((Auto)f).getHubraum()); 31
32 Klassenhierarchie - Beispiel ArrayList<Fahrzeug> mylist = new ArrayList<Fahrzeug>(); mylist.add(new Fahrzeug(2)); mylist.add(new Auto(1400)); mylist.add(new Lastwagen(80000,50)); Output: for(fahrzeug f : mylist) { if(f instanceof Auto) { System.out.println(((Auto)f).getHubraum()); Fahrzeug radzahl Auto extends Fahrzeug hubraum gethubraum set Hubraum Lastwagen extends Auto capacity 32
33 Abstrakte Klassen MyClass extends MyAbstract{ Manchmal ist es sinnvoll, eine Methode zu definieren, aber nicht zu implementieren. Beispiel: Flächeninhalt von geometrischen Objekten: Jedes dieser Objekte hat einen Flächeninhalt Für verschiedene Formen wird dieser jedoch unterschiedlich berechnet Zwei Arten: abstract interface 33
34 Abstrakte Klassen - abstract Man kann sowohl Methoden implementieren, als auch nur deklarieren Man kann keine Objekte einer abstrakten Klasse instanzieren (weil man sonst Methoden aufrufen könnte, die nicht implementiert sind!) public abstract class GeomObject { double costperarea; public abstract double flaeche(); public double cost() { return flaeche()*costperarea; 34
35 Beispiel - abstract public abstract class GeometricObject { double costperarea; public abstract double flaeche(); public class Rechteck extends GeometricObject{ private double width; private double height; public double cost() { return flaeche()*costperarea; public Rechteck(double width, double height, double costperarea) { this.width = width; this.height = height; this.costperarea = costperarea; public class Kreis extends GeometricObject{ private double radius; public Kreis(double radius, double costperarea) { this.radius=radius; this.costperarea = costperarea; public double flaeche() { return width*height; public double flaeche() { return radius*radius* ; 35
36 Abstrakte Klassen - interface MyClass implements MyInterface{ Vom Prinzip her ähnlich zu abstrakten Klassen, aber: Nur Methoden deklarieren, nicht implementieren Vorteil: Eine Klasse kann mehrere Interfaces implementieren, aber nur von einer Klassen erben public interface GeometricObject { double costperarea; public double flaeche(); public double cost(); 36
37 Abstrakte Klassen - interface Wann nutzt man Interfaces? Wenn man als Entwickler eine Schnittstelle anbieten will Beispiel: Wir definieren ein Interface IStack für einen Stack. Dieses Interface garantiert, dass die nötigen Funktionen: push, pop, peek, empty usw vorhanden sind. Wie der Stack dann implementiert ist, belibt offen aber wenn ein Objekt das Interface IStack implementiert, kann man sicher sein, dass alle benötigten Funktionen vorhanden sind. 37
38 Factories Zwei Informatiker Arbeiten mit Bäumen: Damit sie gleichzeitig Arbeiten können implementiert sie einer, der andere nutzt sie Anfangs wird entschieden: Wir benutzen einen ArrayTree Während der Entwicklung merkt man: ListTree wäre für diese Anwendung besser geeignet. Benutze: ArrayTree Meinung geändert: Ändere alle ArrayTree zu ListTree 38
39 Factories - Beispiel Statt den Konstruktor direkt zu benutzen, wird dies über eine TreeFactory gemacht! Tree t = TreeFactory.makeTree(); 39
40 Vorbesprechung
41 U6A1 - Klassen, Schnittstellen und Typumwandlungen interface I{ abstract class A1 implements I{ abstract class A2 implements I{ class C1 extends A1{ class C2 implements I{ class C3 extends A2{ A1 c = new C1(); I i = c; A1 a1 = c; A2 a2 = c; C1 c1 = c; C2 c2 = c; C3 c3 = c; I A1 C1 A2 C2 C3 41
42 U6A1 - Klassen, Schnittstellen und Typumwandlungen interface I{ abstract class A1 implements I{ abstract class A2 implements I{ class C1 extends A1{ class C2 implements I{ class C3 extends A2{ A1 c = new C1(); I i = (I)c; A1 a1 = (A1)c; A2 a2 = (A2)c; C1 c1 = (C1)c; C2 c2 = (C2)c; C3 c3 = (C3)c; I A1 C1 A2 C2 C3 42
43 U6A2 - Schnittstellen und Implementierungen Gegeben Stack ListStack, welcher das Interface IStack implementiert. Fabrikmethode implementieren (Wie auf der Folie Factories-Beispiel ) alle Tests bestanden, die Aufgabe ist aber noch nicht fertig Funktion empty im Interface und in ListStack inklusive Dokumentation hinzufügen. Test hinzufügen, um zu überprüfen, dass empty korrekt implementiert wurde. 43
44 U6A3 - Polymorphie Wir wollen eine verkettete Liste wie in Übung 5 machen, value soll aber diesesmal ein beliebiges Objekt sein dürfen. Implementiert die Funktinen in der Klasse ListUtils (die Funktionen sind sehr ähnlich wie in der letzen Serie) Fabrikmethode implementieren, wie gehabt 44
45 U6A3 - Polymorphie Jezt wollen wir ein Objekt erstellen, welches wir dann in unserer Liste speichern können. abstract class GeometricObject class Rectangle extends GeometricObject class Triangle extends GeometricObject Funktion area GeometricObject implementiert Comparable smallerthan in GeometricObject 45
46 U6A3 - Polymorphie Jezt können wir mit Hilfe vom interface Comparable die Funktion sort implementieren Implementiert den selben Sortieralgoritmus wie in der Serie 5. Anstatt if(a < b) heisst es nun if(a.smallerthan(b)) 46
47 U6A4 - Stacks und Optimierungen Für fortgeschrittene - Ihr seid aber alle schon genug fortgeschritten ;) Klasse ChunkedStack Stack, welcher als Mischung vom ListStack und ArrayStack implementiert werden soll «first» Array Array Array null Was ist schneller ChunkedStack oder ListStack? Wie wächst der Aufwand für size in Abhängigkeit der Listengrösse? Kann man size auch besser implementieren? 47
48 Bonusübung 1 Ihr dürft bei dieser Übung auch Java Klassen importieren, z.b. java.util.arrays Achtung: es konnte sein, dass mehrere Studenten die selbe Legi-Nr. haben! Dies wurde jetzt aber behoben. Abgabe bis am 15.April 00:00 Das heisst am Samstag Abend. Falls ihr bei den Public Tests 100% habt, aber nicht beim Einreichen: Kreiert eigene Testfiles mit randfällen, welche ihr evt nicht berücksichtigt. 48
49 Viel Spass! 49
Informatik II Übung 6
Informatik II Übung 6 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 11.4.2018 Carina Fuss 11.4.2018 1 Übung 6 Nachbesprechung Übung 5 Objektorientierung Vererbung, Polymorphie, abstrakte Klassen, Interfaces,
MehrInformatik II (D-ITET) Übungsstunde 6
Informatik II (D-ITET) Übungsstunde 6 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Nachbesprechung Übung 5 Besprechung der Vorlesung Die neue Serie... Zeit zum Programmieren / für
MehrInformatik II - Übung 06
Informatik II - Übung 06 Katja Wolff katja.wolff@inf.ethz.ch Besprechung Übungsblatt 5 Informatik II Übung 06 05.04.2017 2 U5 1.) Einfach verkettete Listen 2.) Modifizierung verketteter Listen 3.) Sortieren
MehrInformatik II Übung 5 Gruppe 4
Informatik II Übung 5 Gruppe 4 (Folien teils von Christian B. und Christelle G.) Lukas Burkhalter lubu@inf.ethz.ch Informatik II Übung 5 Lukas Burkhalter 27. März 2018 1 Nachbesprechung Letzte Übung (4)
MehrInformatik II Übung 5
Informatik II Übung 5 Florian Scheidegger florsche@student.ethz.ch Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös und Simon Mayer gabor.soros@inf.ethz.ch, simon.mayer@inf.ethz.ch 27.03.2013
MehrInformatik II. Übungsstunde 6. Distributed Systems Group, ETH Zürich
Informatik II Übungsstunde 6 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung der Vorlesung Uebungsbezogene Themen: Statisches & Dynamisches Type Checking Zeit zum Programmieren...
MehrÜbungsserie Nr. 6. Ausgabe: 1. April 2015 Abgabe: 15. April Hinweise
Informatik II (D-ITET) Frühjahrssemester 2015 Prof. Friedemann Mattern Christian Beckel (beckel@inf.ethz.ch) ETH Zürich Institut für Pervasive Computing Gruppe für Verteilte Systeme http://vs.inf.ethz.ch
MehrInformatik II - Tutorium 6
Informatik II - Tutorium 6 Vincent Becker vincent.becker@inf.ethz.ch 11.04.2018 Vincent Becker 11.04.2018 1 Teilnehmer für Projekte gesucht Falls jemand gerne an Experimenten teilnimmt, ein Email an mich
MehrInformatik II Übung 7. Pascal Schärli
Informatik II Übung 7 pascscha@student.ethz.ch Was gibts heute? Warm-Up Nachbesprechung Serie 6 Best-Of Vorlesung: Generics Binäre Suchbäume Spielbäume Vorbesprechung Serie 7 2 Warm - Up Warm-Up interface
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.
MehrInformatik II Übung 6 Gruppe 7
Informatik II Übung 6 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch DEBRIEFING Übung 5 2 U5A1-4 Im Prinzip alles richtig. Falls am Ende noch Zeit, dann Einsicht in die Best Of s 3 THEORIE Java Vererbung,
MehrInformatik II Übung 6 Gruppe 4
Informatik II Übung 6 Gruppe 4 (Folien teils von Christian B. und Christelle G.) Lukas Burkhalter lubu@inf.ethz.ch Informatik II Übung 6 Lukas Burkhalter 11.04.2018 1 Programm Heute Code Style Rückblick
MehrInformatik II - Übung 07
Informatik II - Übung 07 Katja Wolff katja.wolff@inf.ethz.ch Besprechung Übungsblatt 6 Informatik II Übung 07 12.04.2017 2 Übungsblatt 6 1.) Klassen, Schnittstellen, Typumwandlung 2.) Schnittstellen und
MehrInformatik II (D-ITET) Übungsstunde 5,
Informatik II (D-ITET) Übungsstunde 5, 30.04.2017 Hossein Shafagh, shafagh@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung von Übung 4 More Java insights (Call by Value und Call by
MehrInformatik II Übung 5. Pascal Schärli
Informatik II Übung 5 pascscha@student.ethz.ch Warm - Up Warm - Up public static int power(int base, int exp) { int out=1; for(int i = 0; i
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
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
MehrInfo B VL 8: Abstrakte Klassen & Interfaces
Info B VL 8: Abstrakte Klassen & Interfaces Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 8: Abstrakte
MehrInformatik II Übung 7 Gruppe 3
Informatik II Übung 7 Gruppe 3 Julia Gygax jgygax@student.ethz.ch Julia Gygax 18.04.2018 1 Nachbesprechung Übung 6 Julia Gygax 18.04.2018 2 Aufgabe 1 Klassen, Schnittstellen und Typumwandlungen Julia Gygax
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
MehrInformatik II - Übung 06. Christian Beckel
Informatik II - Übung 06 Christian Beckel beckel@inf.ethz.ch 01.04.2015 Heute Besprechung Blatt 05 (kurz) Objektorientierte Programmierung Hinweise zu Blatt 06 Christian Beckel 01/04/15 2 Besprechung Übungsblatt
MehrInformatik II Übung 5
Informatik II Übung 5 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 28.3.2018 Carina Fuss 28.3.2018 1 Übung 5 Administratives/Tipps zu Eclipse Nachbesprechung Übung 4 kurze Demo zu Stacks Java Pakete Call
MehrAufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen
Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Aufgabenblatt 4 Aufgabe 1 1. Erläutern Sie in eigenen Worten die Begriffe Datenstruktur, Datentyp und abstrakter Datentyp. Nutzen Sie das Beispiel
MehrInformatik II Übung 6
Informatik II Übung 6 Florian Scheidegger florsche@student.ethz.ch Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös und Simon Mayer gabor.soros@inf.ethz.ch, simon.mayer@inf.ethz.ch 11.03.2013
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
MehrInformatik II Übung 7. Gruppe 2 Carina Fuss
Informatik II Übung 7 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 18.4.2018 Carina Fuss 16.4.2018 1 Übung 7 Hinweise zum Programmieren Nachbesprechung Übung 6 Vorbesprechung Übung 7 ArrayList und Generics
MehrWie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?
Generic Programming without Generics from JAVA5 Motivation Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen? Ein Bespiel: sie haben bereits eine Klasse zur Multiplikation von Matrizen
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;
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,
MehrInformatik II - Tutorium 7
Informatik II - Tutorium 7 Vincent Becker vincent.becker@inf.ethz.ch 18.04.2018 Vincent Becker 19.04.2018 1 Altklausuren verfügbar Für regisitrierte AMIV-Mitglieder Mehrere Altklausuren Disclaimer lesen!
MehrInformatik II Übung 5 Gruppe 3
Informatik II Übung 5 Gruppe 3 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 5 Leyna Sadamori 29. März 2017 1 Administrativ Die Übung am 5. April fällt aus! Bitte in die Übung in HG G 3
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
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,
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
MehrAlgorithmen 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
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
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
MehrII.4.5 Generische Datentypen - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.5 Generische Datentypen - 1 - Ähnliche
MehrDas Interface-Konzept am Beispiel der Sprache Java
Das Interface-Konzept am Beispiel der Sprache Java Klaus Kusche, November 2013 Inhalt Motivation: Wozu braucht man Interfaces? Interfaces in Java Was spricht gegen die große Lösung? Voraussetzungen Kenntnisse
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
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 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.
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
MehrÜbungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor
Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2013 PD Dr. Cyrill Stachniss Dr. Rainer Kümmerle Übungsblatt 13 Abgabe / Besprechung in Absprache
MehrSchnittstellen, Stack und Queue
Schnittstellen, Stack und Queue Schnittstelle Stack Realisierungen des Stacks Anwendungen von Stacks Schnittstelle Queue Realisierungen der Queue Anwendungen von Queues Hinweise zum Üben Anmerkung: In
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
Mehr1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)
Praktische Informatik (Software) Vorlesung Softwareentwicklung 1 Prof. Dr. A. Ferscha Hauptklausur am 01. 02. 2001 Zuname Vorname Matr. Nr. Stud. Kennz. Sitzplatz HS / / / Punkte Note korr. Fügen Sie fehlende
MehrÜbungsstunde 9. Einführung in die Programmierung I
Übungsstunde 9 Einführung in die Programmierung I Probleme bei Übung 8 [TODO Assistent] Nachbesprechung Übung 9 Aufgabe 1 Spieler Spieler[] spieler = { new ZufallsWortSpieler(), new ZufallsWortSpielerMitGedaechtnis(),
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
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
MehrKlausur: Java (Liste P)
Klausur: Java (Liste P) SS05 Erlaubte Hilfsmittel: Gebundene! Unterlagen (Skript mit Anmerkungen, eigene Mitschrift) und maximal ein Buch. Bitte keine losen Blätter. Lösung ist auf den Klausurbögen anzufertigen.
MehrALP II Dynamische Datenmengen Datenabstraktion
ALP II Dynamische Datenmengen Datenabstraktion O1 O2 O3 O4 SS 2012 Prof Dr Margarita Esponda M Esponda-Argüero 1 Dynamische Datenmengen Dynamische Datenmengen können durch verschiedene Datenstrukturen
MehrFaulheit professionell: Fertige Datenbehälter. Das Java-Collections-Framework Typsicherheit Generische Klassen
Faulheit professionell: Fertige Datenbehälter Das Java-Collections-Framework Typsicherheit Generische Klassen Das Java Collections Framework Grundlegende Interfaces Das Interface List Das Interface List
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
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
MehrÜbungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor
Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2018 Prof. Dr. Wolfram Burgard Andreas Kuhner Daniel Büscher Übungsblatt 13 Abgabe / Besprechung
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White
MehrProgrammieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik
Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Grundidee abstrakter Klassen:
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.:
MehrProgrammiermethodik 3. Klausur Lösung
Programmiermethodik 3. Klausur Lösung 9. 1. 2014 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 20 2 16 3 45 4 19 5 20 Gesamt 120 1 Seite 2 von 10 Aufgabe 1) Objekt-Orientierung und Vererbung
MehrInformatik II Übung 7 Gruppe 7
Informatik II Übung 7 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 7 Leyna Sadamori 10. April 2014 1 Administratives Nächste Übung fällt leider aus! Bitte eine andere Übung besuchen.
MehrInformatik II Übung 4 Gruppe 7
Informatik II Übung 4 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 4 Leyna Sadamori 20. März 2014 1 Administratives Text Encoding: UTF-8 Informatik II Übung 4 Leyna Sadamori 20.
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber in den Übungen! Linux, OS X http://hhu-fscs.de/linux-install-party/
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
MehrTeil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen
Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für
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
MehrAbschlussklausur Lösung. Bitte in Druckschrift leserlich ausfüllen!
Informatik für Informationsmanager II SS 2006 Universität Koblenz-Landau Institut für Informatik Prof. Dr. Steffen Staab Dr. Manfred Jackel Abschlussklausur 04.08.2006 Lösung Bitte in Druckschrift leserlich
MehrEINFÜ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/
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
MehrPolymorphie/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
MehrErsetzbarkeit und Verhalten
Ersetzbarkeit und Verhalten U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Struktur der Typen für Ersetzbarkeit nicht ausreichend Beispiel: void
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
MehrOrdnung im Materiallager: Datenstrukturen II. Suchen und Sortieren im Array Verkettete Listen Rekursion
Ordnung im Materiallager: Datenstrukturen II Suchen und Sortieren im Array Verkettete Listen Rekursion Indizierter Datenbehälter Modell: Parkhaus, nummerierte Plätze interface FuhrparkIndex { // indiziert
MehrAlgorithmen und Programmierung III
Musterlösung zum 5. Aufgabenblatt zur Vorlesung WS 2006 Algorithmen und Programmierung III von Christian Grümme Aufgabe 1 Implementieren von ADTs Testlauf der Klasse TestDeque in der z05a1.jar: 10 Punkte
Mehr1 Abstrakte Klassen, finale Klassen und Interfaces
1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
Mehr// 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
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
MehrAlgorithmen und Programmierung III
Musterlösung zum 4. Aufgabenblatt zur Vorlesung WS 2006 Algorithmen und Programmierung III von Christian Grümme Aufgabe 1 Amortisierte Analyse 10 Punkte Zu erst betrachte ich wie oft die letzte Ziffer
MehrClient-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
MehrProgrammieren 2 Java Überblick
Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10
MehrObjektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern
Thema Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Referent: Frank Sanders Seite 1 Inhalt Der Vortrag hat einen sehr kurzen Einleitungsteil der sich mit Objektorientierung
MehrHERZLICH WILLKOMMEN PROGRAMMIERKURS (JAVA) ZUM. Dr. Vera Weil Institut für Informatik Universität zu Köln. 9. Vorlesung (05.
HERZLICH WILLKOMMEN ZUM PROGRAMMIERKURS (JAVA) Dr. Vera Weil Institut für Informatik Universität zu Köln 9. Vorlesung (05. Dezember 2018) Letztes Mal Statische Methoden und Felder Zugriffsmechanismen Vererbung
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Semestralklausur Einführung in die Programmierung Semestralklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList
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
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
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
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
MehrJava-Schulung Grundlagen
Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings
MehrStacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012
, Queues & Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 19. September 2012 ODE/FHTBM, Queues & 19. September 2012 1/42 Datenstrukturen Elementare Datenstrukturen
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,
Mehr14. Java Objektorientierung
Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen
MehrObjektorientierte 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
MehrProf. Dr. Uwe Schmidt. 30. Januar 2017
Prof. Dr. Uwe Schmidt 30. Januar 2017 Aufgaben zur Klausur Algorithmen und Datenstrukturen im WS 2016/17 ( B Inf, B TInf, B MInf, B CGT, B WInf, B Ecom, B ITE) Zeit: 75 Minuten erlaubte Hilfsmittel: keine
MehrDie abstrakte Klasse Expression:
Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const 501 Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const Leider (zum Glück?) lässt sich nicht die
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
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
Mehr