7.0 Arbeiten mit Objekten und Klassen
|
|
- Irmela Lorentz
- vor 6 Jahren
- Abrufe
Transkript
1 Einführung in die Programmierung I 7.0 Arbeiten mit Objekten und Klassen Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson and Thomas Gross 2016 All rights reserved.
2 Uebersicht Review 7.0 Listen als Beispiel Copyright (c) Pearson 2013 and Thomas Gross All rights reserved. 2
3 Variable eines Basistyps, Methode public static void somefct() { int x = 0; int y = 0; int z = 0; x y // first stmt z 3
4 Variable eines Basistyps, Methode public static void somefct() { int x = 0; int y = 0; int z = 0; x y 0 0 // first stmt z 0 4
5 Leider falsch. Lokale Variable müssen explizit initialisiert werden, siehe letzte Slides. 5
6 Variable eines Basistyps, Instanzmethode void somefct() { int x = 1; int y = x + 1; int z = 0; x y // first stmt z 6
7 Variable eines Basistyps, Instanzmethode void somefct() { int x = 1; int y = x + 1; int z = 0; // first stmt x y z
8 Variable eines Basistyps, Attribute public class SomeClass { int x = 1; int y = x + 1; int z; x y void somefct() { // first stmt z 8
9 public class SomeClass { int x = 1; int y = x + 1; int z; public class OtherClass { void otherfct() { SomeClass s = new SomeClass(); // first stmt 9 x y z
10 public class SomeClass { OtherClass.java SomeClass.java int x = 1; int y = x + 1; int z; public class OtherClass { void otherfct() { SomeClass s = new SomeClass(); // first stmt 10 x y z
11 public class SomeClass { OtherClass.java SomeClass.java int x = 1; int y = x + 1; int z; public class OtherClass { void otherfct() { x 1 y 2 z 0 SomeClass s = new SomeClass(); // z set to 0 even w/o initialization 11
12 OtherClass.java SomeClass.java class SomeClass { int x; class OtherClass { public static void main (String[] args) { SomeClass x = new SomeClass(); System.out.println(x.x); // poor naming x 12
13 Variable eines Referenztypes ( reference variable ) public static void somefct() { SomeClass c; c // first stmt System.out.println(c); Class2d.java:8: variable c might not have been initialized System.out.println(c) 1 error ^ 14
14 Variable eines Referenztypes ( reference variable ) Alle Variablen müssen in einer Methode initialisiert werden Gilt für Variable die Referenzen (Verweise) auf Objekte speichern Gilt für auch für Arrays Verwenden auch Referenzvariable Sonst gibt es eine Compiler Error Message Es muss für den Compiler klar sein dass eine Zuweisung stattfand Wenn möglich in Definition initialisieren 15
15 17
16 Variable eines Referenztypes ( reference variable ) public static void somefct() { int [] x; x // first stmt System.out.println(x); Class2d.java:8: variable x might not have been initialized System.out.println(x) 1 error ^ 20
17 Variable eines Referenztypes ( reference variable ) public static void somefct() { int [] x = new int[3]; x // first stmt Index Element
18 Variable eines Referenztypes ( reference variable ) public static void somefct() { int [] x = {2, 5, 8; x // first stmt Index Element
19 Variable eines Referenztypes ( reference variable ) public static void somefct() { String [] s = null; s // first stmt 23
20 Variable eines Referenztypes ( reference variable ) public static void somefct() { String [] s = { a, b, c ; s // first stmt Index Element a b c 24
21 Variable eines Referenztypes ( reference variable ) public static void somefct() { String [] s = new String[3] s // first stmt Index Element null null null 25
22 Attribute einer Klasse public class SomeClass { int i; int [] ia; OtherClass o; i ia o 26
23 Variable eines Referenztypes ( reference variable ) public static void somefct() { SomeClass c = new SomeClass(); c // first stmt i 0 ia null o null 28
24 Variable eines Referenztypes ( reference variable ) public static void somefct() { SomeClass [] ca = new SomeClass[3]; ca // first stmt Index Element null null null 29
25 31
26 Variable eines Referenztypes ( reference variable ) public static void somefct() { SomeClass [] ca = new SomeClass[3]; ca for (int i=0; i<3; i++){ ca[i] = new SomeClass(); Index Element ca[i].ia = new int[3]; i ia 0 i ia 0 i ia 0 32 o null o null o null Index Element Index Element Index Element
27 34
28 Attribute einer Klasse public class SomeClass { int i; int [] ia; SomeClass o; i ia o 35
29 39
30 41
31 Variable eines Referenztypes ( reference variable ) public static void somefct() { SomeClass c = new SomeClass(); SomeClass d = null; c d d = c; d.i = 1; c = null; d = null; i ia o 1 null null 42
32 Variable eines Referenztypes ( reference variable ) public static void somefct() { SomeClass c = new SomeClass(); SomeClass d = new SomeClass(); c d i 0 i 0 ia null ia null 43 o null o null
33 Variable eines Referenztypes ( reference variable ) public static void somefct() { SomeClass c = new SomeClass(); SomeClass d = new SomeClass(); c d c.o = d; i 0 i 0 ia null ia null o o null 44
34 Variable eines Referenztypes ( reference variable ) public static void somefct() { SomeClass c = new SomeClass(); SomeClass d = new SomeClass(); c d c.o = d; i 0 i 0 ia null ia null Wie kann ich d.i auf 1 setzen? 2 Möglichkeiten 45 o o null
35 46
36 Referenzen und Objekte In Java, für Objekte und Arrays gelten die reference semantics Regeln.
37 Eine Klasse für Knoten einer Liste public class ListNode { int data; ListNode next; JederKnoten derlistespeichert: Den Wert einer ganzen (int) Zahl Einen Verweis auf einen anderen Listenknoten null ListNodes können zu einerkette verbunden ( linked ) werden um eine Menge oder Liste von Werten zu speichern.
38 Verknüpfte Knoten -- Uebungsproblem 1 Welche Folge von Anweisungen verändert dieses Bild: list in dieses? list list.next.next = new ListNode(30);
39 Verknüpfte Knoten -- Uebungsproblem 2 Welche Folge von Anweisungen verändert dieses Bild: list in dieses? list list = new ListNode(30, list);
40 Verknüpfte Knoten -- Uebungsproblem 3 Welche Folge von Anweisungen verändert dieses Bild: list in dieses? list list list2 40
41 rest = list2.next; list2.next = list1.next; list1.next = list2; list2 = rest; 64
42 Referenzen vs. Objekten Variable = Wert; Eine Variable (links von = ) ist ein Zeiger ("Referenzvariable") Ein Wert (rechts von = ) ist ein Objekt (ein Rechteck,; worauf der Zeiger zeigt) Für die Liste rechts: a.next = value; heisst anpassen worauf zeigt variable = a.next; heisst die variable setzen so dass sie auf 1 a zeigt 2 20
43 Referenzen verändern Wenn das Programm sagt: a a.next = b.next; b dann heisst das: Lasse die Variable a.next auf den selben Wert (Objekt) zeigen wie b.next." Oder, Lasse a.next auf den selben Ort wie b.next zeigen."
44 Verknüpfte Knoten -- Uebungsproblem 4 Welche Folge von Anweisungen verändert dieses Bild: list in dieses? list data 1000 next
45 Frage über verknüpfte Knoten Nehmen wir an wir haben eine lange Kette von Knoten: list Wir wissen nicht wie lang die Kette ist. Wie könnten wir die Werte in allen Knoten ausgeben?
46 Algorithmus Pseudocode Fangen wir am Anfang der Liste an, front ist der 1. Knoten while (es gibt noch Knoten auszugeben): Gebe den data Wert des Knotens aus Gehe weiter zum nächsten Knoten via das next Attribut. list
47 Algorithmus Pseudocode Fangen wir am Anfang der Liste an, front ist der 1. Knoten while (es gibt noch Knoten auszugeben): Gebe den data Wert des Knotens aus Gehe weiter zum nächsten Knoten via das next Attribut. list Wie wissen wir ob noch Knoten auszugeben sind? Wir haben einen Verweis auf einen Knoten Nach der Ausgabe des letzten Knotens ist next null.
48 Algorithmus Pseudocode Fangen wir am Anfang der Liste an, front ist der 1. Knoten while (es gibt noch Knoten auszugeben): Gebe den data Wert des Knotens aus Gehe weiter zum nächsten Knoten via das next Attribut. list Wie können wir uns durch die Liste arbeiten? 990 list = list.next; // is this a good idea?
49 Abarbeiten einer Liste? Ein (schlechter) Weg jeden Wert in der Liste auszugeben : while (list!= null) { System.out.println(list.data); list = list.next; // move to next node Was ist das Problem? (Wir verlieren die Liste während wir sie ausgeben) list
50 Eine weitere Referenz: current Wir wollen list nicht verändern. Wir deklarieren eine andere Variable und ändern diese. Eine ListNode Variable ist nicht ein ListNode Objekt sondern eine Referenz (Verweis) auf ein Objekt ListNode current = list; list current
51 Eine weitere Referenz: current ListNode current = list; list current Was passiert wenn wir jetzt diese Anweisung ausführen: current = current.next;
52 Korrektes Durchlaufen einer Liste Der korrekte Weg jeden Wert der Liste auszugeben: ListNode current = list; while (current!= null) { System.out.println(current.data); current = current.next; // move to next node list Das Verändern von current hat keinen Einfluss auf die Liste
53 Eine Klasse LinkedIntList ListNodes sollen nichtvon Klienten direktverändert werden. Also entwickeln wir eine Klasse die die Knoten versteckt: LinkedIntList. LinkedIntList front ListNode ListNode ListNode element 0 element 1 element 2
54 Hat die Methoden: add, add, get, indexof, remove, size, tostring Die Liste ist als Kette von Knoten intern implementiert Das LinkedIntList Objekt enthält eine Referenz auf das erste Element im front null im next Attribut signalisiert Ende der Liste Hat front den Wert null so ist die Liste leer LinkedIntList front add(value) add(index, value) indexof(value) remove(index) size() tostring() ListNode ListNode ListNode element 0 element 1 element 2
55 LinkedIntList Klasse v1 public class LinkedIntList { private ListNode front; public LinkedIntList() { front = null; LinkedIntList front = // methods go here
56 Die add Methode // Adds the given value to the end of the list. public void add(int value) {... Wie wollen wir einen neuen Knoten am Ende hinzufügen? Sind die Werte in der Liste vor diesem Schritt wichtig? front = element 0 element 1 element 2
57 Ein Element n eine leere Liste hinzufügen Bevor 20 hinzugefügt wird: Danach: front = front = 20 element 0 Wir müssen einen Knoten erstellen und an die Liste anhängen.
58 Die add Methode, 1. Versuch // Adds the given value to the end of the list. public void add(int value) { if (front == null) { // adding to an empty list front = new ListNode(value); else { // adding to the end of an existing list...
59 An eine nicht-leere Liste anhängen Bevor 20 am Ende hinzugefügt wird : front = 42-3 element 0 element 1 Danach: front = element 0 element 1 element 2
60 Vorsicht an der Kante! Um ein Element zur Liste hinzuzufügen (oder zu von der Liste zu entfernen) müssen wir das next Attribut des vorherigen Knotens modifizieren. front = 42-3 element 0 element 1
61 Vorsicht an der Kante! Um ein Element zur Liste hinzuzufügen (oder zu von der Liste zu entfernen) müssen wir das next Attribut des vorherigen Knotens modifizieren. front = 42-3 element 0 element 1 Wie durchlaufen wir eine Liste?
62 Vorsicht an der Kante! Um ein Element zur Liste hinzuzufügen (oder zu von der Liste zu entfernen) müssen wir das next Attribut des vorherigen Knotens modifizieren. front = 42-3 element 0 element 1 current = Wie durchlaufen wir eine Liste?
63 Vorsicht an der Kante! Um ein Element zur Liste hinzuzufügen (oder zu von der Liste zu entfernen) müssen wir das next Attribut des vorherigen Knotens modifizieren. front = 42-3 element 0 element 1 current = Wie durchlaufen wir eine Liste? Was für einen Typ muss current haben?
64 Vorsicht an der Kante! Um ein Element zur Liste hinzuzufügen (oder zu von der Liste zu entfernen) müssen wir das next Attribut des vorherigen Knotens modifizieren. front = 42-3 element 0 element 1 current = Wie durchlaufen wir eine Liste? Was für einen Typ muss current haben? ListNode
65 Vorsicht an der Kante! Um ein Element zur Liste hinzuzufügen (oder zu von der Liste zu entfernen) müssen wir das next Attribut des vorherigen Knotens modifizieren. front = 42-3 element 0 element 1 Worauf sollte current verweisen wenn wir 20 am Ende einfügen wollen? Welcher Loop Test lässt uns an dieser Stelle anhalten?
66 Die add Methode // Adds the given value to the end of the list. public void add(int value) { if (front == null) { // adding to an empty list front = new ListNode(value); else { // adding to the end of an existing list ListNode current = front; while (current.next!= null) { current = current.next; current.next = new ListNode(value);
7.0 Arbeiten mit Objekten und Klassen
252-0027 Einführung in die Programmierung 7.0 Arbeiten mit Objekten und Klassen Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013. and Thomas Gross 2016 All rights reserved. Uebersicht
MehrEinführung in die Programmierung. 5.0 Input/Output. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung 5.0 Input/Output Thomas R. Gross Department Informatik ETH Zürich 1 Übersicht 5.1 Output in Fenster 5.2 Arbeiten mit Dateien 5.3 Scanner im Einsatz/Beispiele 5.4
Mehr7.0 Arbeiten mit Objekten und Klassen
252-0027 Einführung in die Programmierung 7.0 Arbeiten mit Objekten und Klassen Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013. and Thomas Gross 2016 All rights reserved. Uebersicht
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Lauftagebuch Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 21 Erstellen einer
Mehr11.0 Systematisches Programmierung
252-0027 Einführung in die Programmierung 11.0 Systematisches Programmierung Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013 and Thomas Gross 2016 All rights reserved. Uebersicht
Mehr! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -
! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck
Mehr1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen
1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ ] ( ) Infix-Operator Methodenaufruf new
MehrEinführung in die Programmierung. 6.0 Objekte. Thomas R. Gross Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung 6.0 Objekte Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013 and Thomas R Gross 2016, 2017 All rights reserved. Uebersicht 6.3 Parameter
MehrBeispielprüfung CuP WS 2015/2016
Beispielprüfung CuP WS 2015/2016 Univ.-Prof. Dr. Peter Auer 23. Dezember 2015 Informationen zur Prüfung Die Prüfung wird als Multiple-Choice-Test mit 10 Fragen am Computer abgehalten. (Bei manchen Fragen
MehrEinstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
MehrALP II Dynamische Datenmengen
ALP II Dynamische Datenmengen Teil III Iteratoren Iterator-Objekt O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 22. ALP2-Vorlesung, M. Esponda 2 Motivation: Iteratoren Wir haben für die Implementierung
MehrEinführung in die Programmierung I. 2.4 Felder. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 2.4 Felder Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.4 Felder (Vektoren, "array"s) 2.5 Verschachtelte Schleifen 2.6 "if" Anweisungen 2.7
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
MehrEinführung in die Programmierung Systematisches Programmieren. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung 11.0 Systematisches Programmieren Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013 and Thomas Gross 2016 All rights reserved. 1 Übersicht
MehrEinführung in die Programmierung I Systematisches Programmieren. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 10.0 Systematisches Programmieren Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013 and Thomas Gross 2016 All rights reserved. Uebersicht
MehrEinführung in die Programmierung. 6.0 Objekte. Thomas R. Gross Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung 6.0 Objekte Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013 and Thomas R Gross 2016, 2017 All rights reserved. Die 1. Aufgabe Wir wollen
MehrEinführung in die Programmierung. 4.0 Klassen und Objekte. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung 4.0 Klassen und Objekte Thomas R. Gross Department Informatik ETH Zürich 1 Klassen und Objekte Objekt ( object ): Ein Gebilde das Zustand ( state ) und Verhalten
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
MehrEinführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen. Sebastian Küpper
Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen Sebastian Küpper Unzulänglichkeit von Feldern Wenn ein Unternehmen alle Rechnungen eines Jahres verwalten möchte,
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Datenstruktur Liste Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 42 Formale Definition
MehrALP II Dynamische Datenmengen Datenabstraktion (Teil 2)
ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 49 Einfach verkettete Listen O1 O2 O3 50 Einführung Einfach verkettete Listen sind die einfachsten
MehrADT: Verkettete Listen
ADT: Verkettete Listen Abstrakter typ - Definition public class Bruch int zaehler, nenner; public Bruch(int zaehler, int nenner) this.zaehler = zaehler; this.nenner = nenner; Konstruktor zum Initialisieren
MehrObjektorientierte Programmierung und Modellierung
Objektorientierte Programmierung und Modellierung Einführung, Teil 2 24.10.17 - WS17/18 Hakan Aksu 1 Raumänderung beachten Dienstag 14:15-15:45 Uhr in M001 (anstatt K101) 2 Ausfalltermine 31.10 Vorlesung
MehrInformatik II (D-ITET) Informatik II (D-ITET) Übungsstunde 1. Distributed Systems Group, ETH Zürich
Informatik II (D-ITET) Informatik II (D-ITET) simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Übungsstunde 1 Informatik II (D-ITET) 1 Ablauf Nachbesprechung Übungen 3 und 4 Besprechung der
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
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1
Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1
Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrInformatik II - Tutorium 5
Informatik II - Tutorium 5 Vincent Becker vincent.becker@inf.ethz.ch 28.03.2018 Vincent Becker 28.03.2018 1 Neue Webseite Vincent Becker 28.03.2018 3 Allgemeines Java-Konvention: Alle Variablen- und Methodennamen
MehrADT: Verkettete Listen
ADT: Verkettete Listen Motivation I public class Bruch{ int zaehler, nenner; public Bruch(int zaehler, int nenner) { this.zaehler= zaehler; this.nenner = nenner; Konstruktor zum Initialisieren der Werte
MehrAbgabe: (vor 12 Uhr)
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 7 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
MehrVariablenarten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 10.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 10.12.07 1 / 15
Mehrn 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen
n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 -
Mehr16. Dynamische Datenstrukturen
Datenstrukturen 6. Dynamische Datenstrukturen Eine Datenstruktur organisiert Daten so in einem Computer, dass man sie effizient nutzen kann. Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange
MehrADT: Verkettete Listen
ADT: Verkettete Listen Abstrakter typ - Definition public class Bruch{ int zaehler, nenner; public Bruch(int zaehler, int nenner) { this.zaehler = zaehler; this.nenner = nenner; Konstruktor zum Initialisieren
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
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung Anweisungen durch Methodenaufrufe Ausgabe auf der Konsole System.out.println(...); Benutzereingabe einlesen = scanner.nextdatentyp(); Mathematische Funktionen Math.sqrt( ), Math.sin( ), Math.random(),
Mehr13. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Sortierte Liste 40 40 Motivation: Stapel ( push, pop, top, empty ) Wir brauchen einen neuen
Mehr7. Verkettete Strukturen: Listen
7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Version: 4. Jan. 2016 Vergleich: Schwerpunkte Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++):
MehrSchwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
Mehr1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen
1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 - 2. Methoden
MehrInformatik II (D-ITET) Übungsstunde 5
Informatik II (D-ITET) Übungsstunde 5 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Nachbesprechung Übungen 3 und 4 Besprechung der Vorlesung Übungsbezogene Themen: Referenzen, Listen
MehrEinstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung
MehrEinstieg in die Informatik mit Java
1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:
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
MehrDatenkapselung: public / private
627 18. Klassen Klassen, Memberfunktionen, Konstruktoren, Stapel, verkettete Liste, dynamischer Speicher, Copy-Konstruktor, Zuweisungsoperator, Destruktor, Konzept Dynamischer Datentyp Datenkapselung:
Mehra) Für das vorgegebene Programmstück ergibt sich folgendes Referenzgeflecht:
Technische Universität München WS 2011/12 Fakultät für Informatik Übungsblatt 7 Dr. C. Herzog, M. Maalej 05. Dezember 2011 Übungen zu Grundlagen der Programmierung Aufgabe 32 (Lösungsvorschlag) Für die
MehrInstitut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 6 Prof. R. Westermann, A. Lehmann, R.
Mehrpue13 January 28, 2017
pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern
MehrImplementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
MehrTechnische Universität München WiSe 2018/19 Fakultät für Informatik Übungsblatt 6 Dr. Ch. Herzog 26. November 2018
Technische Universität München WiSe 2018/19 Fakultät für Informatik Übungsblatt 6 Dr. Ch. Herzog 26. November 2018 Übungen zu Grundlagen der Programmierung Aufgabe 19 (Lösungsvorschlag) Rekursive Datenstruktur
MehrVariablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel
4213 Variablen 17.834 float Flugzeug 36812736294 I write code Hund long String Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 3 + 4 1 Variablen sind wie Becher. Sie speichern etwas. // Variablen
MehrKlassen mit Instanzmethoden
Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 3.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 3.12.07
MehrMethoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
MehrVerkettete Datenstrukturen: Listen
Verkettete Datenstrukturen: Listen 2 Listen Formal: Liste = endliche Folge von Elementen [a 1, a 2,..., a n ]. Spezialfall: leere Liste [ ]. Länge einer Liste = Anzahl der Elemente (bei leerer Liste: 0).
MehrLösungshinweise/-vorschläge zum Übungsblatt 8: Software-Entwicklung 1 (WS 2017/18)
Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 8: Software-Entwicklung 1 (WS 2017/18)
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
MehrSoftware Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrTutoraufgabe 1 (Implementierung eines ADTs):
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Tutoriumslösung - Übung (Abgabe.05.0) F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe (Implementierung eines ADTs): Wir spezifizieren den ADT
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Verschiedene Listenarten zu implementieren (einfach-/doppelt-verkettet, Array-Listen). Konzept Information Hiding
MehrVerkettete Listen. DVG Verkettete Listen 1
Verkettete Listen DVG2-03 - Verkettete Listen 1 Primitive typen Vorteile: werden direkt vom Prozessor unterstützt schneller Zugriff schnelle Verarbeitung Nachteile: kleine menge feste Struktur unflexibel
MehrAlgorithmen und Programmierung II
Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung
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
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 Elementare Datenstrukturen) Prof. Dr. Susanne Albers Lineare Listen (1) Lineare Anordnung von Elementen eines Grundtyps (elementarer Datentyp
Mehr// Objekt-Methoden: public void insert(int x) { next = new List(x,next); } public void delete() { if (next!= null) next = next.next; } public String
// Objekt-Methoden: public void insert(int x) { next = new List(x,next); } public void delete() { if (next!= null) next = next.next; } public String tostring() { String result = "["+info; for(list t=next;
Mehr6 Speicherorganisation
6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
MehrDatenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik
5. Datenstrukturen Motivation Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik Eine Datenstruktur speichert gegebene Daten und stellt auf diesen bestimmte Operationen
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
Mehrclass ListElement { int value; ListElement next; ListElement() { next=null; value=0;
Listenimplementierung Übung 1, Aufgabe 4. c 2004 Evgeny Matusov, Thomas Deselaers Zunächst definieren wir die Basisklasse für die Listenelemente, die gleichzeitig einen Verweis auf weitere Listenelemente
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrEinstieg in die Informatik mit Java
1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung
MehrTECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die rmatik I Übungsblatt 8 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz, Dr.
MehrSchlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
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
MehrHeap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
MehrII. 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:
MehrInformatik II Übung, Woche 14
Giuseppe Accaputo 7. April, 2016 Plan für heute 1. Java Klassen Beispiel: Implementation eines Vorlesungsverzeichnis (VVZ) 2. Informatik II (D-BAUG) Giuseppe Accaputo 2 Java Klassen Beispiel: Implementation
MehrDynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren
Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 13. Bäume. Bäume 1
Kapitel 13 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können
MehrHeap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1
Kapitel 14 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können
MehrRechtsbelehrung. Java und OOP Das Buch Christian Silberbauer 144
Rechtsbelehrung Dieser Foliensatz ist urheberrechtlich geschützt. Änderungen an den Folien sind untersagt. Ausschließlich eine nicht-kommerzielle Nutzung ist kostenfrei. Andernfalls wird eine Gebühr fällig.
Mehr1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen
1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 - 2. Methoden
MehrBasispruefung Herbst 2016/ Einführung in die Programmierung
Basispruefung Herbst 2016/17 0027 Einführung in die Programmierung Departement Informatik ETH Zürich Nachname: Vorname: Stud.number: Mit Ihrer Unterschrift bestätigen Sie, dass Sie folgenden Hinweise zur
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/
MehrEinführung in die Programmierung I. 1.0 EBNF 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 1.0 EBNF 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Graphische Darstellung von EBNF Regeln Syntax Graph: graphische Darstellung
MehrÜberblick. Rekursive Methoden. Backtracking. Memorization. Einfache rekursive Datenstrukturen. Aufzählen, Untermengen, Permutationen, Bitmengen
Überblick 2 Rekursive Methoden Backtracking Memorization Bäume Aufzählen, Untermengen, Permutationen, Bitmengen Memorization Nochmals Fibonacci-Zahlen int fibo(int n) { if(n == 0) { return 0; else if(n
Mehr3. Übungsbesprechung Programmkonstruktion
3. Übungsbesprechung Programmkonstruktion Karl Gmeiner karl@complang.tuwien.ac.at December 12, 2011 K Gmeiner (karl@complang.tuwien.ac.at) 3. Übungsbesprechung PK December 12, 2011 1 / 13 Rückblick und
MehrKapselung und Datenstruktur Liste Software Entwicklung 1
Kapselung und Datenstruktur Liste Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller 1 Kapselung und Strukturieren von Klassen Objekte stellen eine bestimmte Funktionalität bzw. Dienste
MehrGeoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)
Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA) Ergebnisse teilgenommen: 73 nicht bestanden: 22 bestanden: 51 davon 4er: 12 davon 3er: 18 davon 2er: 15 davon 1er: 6 Aufgabe 1: Tracing 4 Punkte
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Überblick Parametrisierte Datentypen mit Java Generics Java Collections Framework Parametrisierte
MehrEinführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz
Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public
MehrKonstruktor/Destruktor
1/23 Konstruktor/Destruktor Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/23 Outline 1 2 3/23 Inhaltsverzeichnis 1 2
MehrAlgorithmen und Programmierung III
Musterlösung zum 3. Aufgabenblatt zur Vorlesung WS 2006 Algorithmen und Programmierung III von Christian Grümme Aufgabe 1 Potenzieren von Matrizen Testlauf der Klasse Matrix.java: 10 Punkte Erzeuge Matrix
Mehr