Einführung in die Programmierung. 6.0 Objekte. Thomas R. Gross Department Informatik ETH Zürich

Größe: px
Ab Seite anzeigen:

Download "Einführung in die Programmierung. 6.0 Objekte. Thomas R. Gross Department Informatik ETH Zürich"

Transkript

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

2 Uebersicht 6.3 Parameter (Reference Type) 6.4 Konstruktoren 6.5 Noch ein Beispiel (Methoden) 6.6 Namesräume 6.7 static Methoden und Variablen 6.8 Module Copyright (c) Pearson and Thomas Gross 2016 All rights reserved. 4

3 Point Klasse, Version 2 public class Point { int x; int y; public String tostring() { return "( " + x + ", " + y + " )"; public double distance() { // distance to (0, 0) return Math.sqrt(x*x + y*y);...

4 Reference Semantics Reference Variables die auf Objektexemplare verweisen folgen den Reference Semantics Regeln Point p1 = new Point(); p1.x = 3; p1.y = 2; Point p2 = p1; // p2.x == 3, p2.y == 2 p2.x = 4; // p2.x == 4, p2.y == 2 // p1.x == 4, p2.y == 2 p1 = null; // p1.x nicht zulaessig 6

5 9

6 Point Klasse, Version 2 Fortsetzung public class Point { int x; int y; public String tostring() { return "( " + x + ", " + y + " )"; public double distance() { // distance to (0, 0) return Math.sqrt(x*x + y*y); public double distance(point other) { // distance to other return Math.sqrt((x-other.x)*(x-other.x) +(y-other.y)*(y-other.y));...

7 Parameter Wiederholung public class Parameter { public static void main (String[] args) { int i = 1; mone(i); System.out. println("i = " + i); public static void mone(int x) { System.out.println("x = " + x); x++; System.out.println("x = " + x); 11

8 Parameter Wiederholung public class Parameter { public static void main (String[] args) { int i = 1; mone(i); System.out. println("i = " + i); public static void mone(int x) { System.out.println("x = " + x); x++; System.out.println("x = " + x); x = 1 x = 2 i = 1 12

9 Value Semantics main mone i: 1 13

10 Value Semantics main i: 1 copy 1 mone 14

11 Value Semantics main i: 1 copy 1 mone 15

12 Value Semantics main i: 1 1 mone x: 1 16

13 Value Semantics main i: 1 mone x: 2 17

14 Value Semantics main i: 1 mone x: 2 18

15 Parameter Uebergabe Primitive Types: Kopieren, dann übergeben Ein Buch (oder eine Festschrift) passen nicht in den Umschlag. Buch: int[] book = new int[1000]; Festschrift: class FestSchrift { String author = "Famous"; int value = 1; Festschrift fes = new FestSchrift(); 19

16 Parameter public class Parameter { public static void main (String[] args) { FS fes = new FS(); mtwo(fes); System.out. println("author = " + fes.author + " " + fes.value); public static void mtwo(fs x) { System.out.println("Author = " + x.author + " " + x.value); x.value++; x.author = "Nobody"; System.out.println("Author = " + x.author + " " + x.value); 20

17 Parameter public class Parameter { public static void main (String[] args) { FS fes = new FS(); mtwo(fes); System.out. println("author = " + fes.author + " " + fes.value); public static void mtwo(fs x) { System.out.println("Author = " + x.author + " " + x.value); x.value++; x.author = "Nobody"; System.out.println("Author = " + x.author + " " + x.value); Author = Famous 1 Author = Nobody 2 Author = Nobody 2 21

18 Reference Semantics main mtwo fes: 22

19 Reference Semantics main fes: Famous 1 mtwo 23

20 Reference Semantics main fes: Famous 1 copy KF 456. mtwo 24

21 Reference Semantics Famous 1 fes 26

22 Reference Semantics main fes: Famous 1 copy KF 456. mtwo 27

23 Reference Semantics main fes: Famous 1 KF 456. mtwo 28

24 Reference Semantics main fes: Famous 1 mtwo x: 29

25 Reference Semantics main fes: Nobody 2 mtwo x: 30

26 Reference Semantics main Nobody 2 mtwo fes: x: 31

27 Reference Semantics Ist der Parameter eine Referenzvariable, so wird diese kopiert und an die aufgerufene Methode übergeben Das Argument (in der aufrufenden Methode) und der Parameter (in der aufgerufenen Methode) verweisen beide auf das selbe Objekt. Aenderungen des Objektes sind in der aufrufenden Methode sichtbar Gilt für Exemplare von Klassen und für Arrays 32

28 Parameter public class Parameter { public static void main (String[] args) { FS fes = new FS(); mthree(fes); System.out. println("author = " + fes.author + " " + fes.value); public static void mthree(fs x) { System.out.println("Author = " + x.author + " " + x.value); x = new FS(); x.author = "Hero"; System.out.println("Author = " + x.author + " " + x.value); 33

29 Parameter public class Parameter { public static void main (String[] args) { FS fes = new FS(); mthree(fes); System.out. println("author = " + fes.author + " " + fes.value); public static void mthree(fs x) { System.out.println("Author = " + x.author + " " + x.value); x = new FS(); x.author = "Hero"; System.out.println("Author = " + x.author + " " + x.value); Author = Famous 1 Author = Hero 1 Author = Famous 1 34

30 Reference Semantics main Famous 1 mthree fes: x: 35

31 Reference Semantics main Famous 1 Hero 1 mthree fes: x: 36

32 Reference Semantics Ist der Parameter eine Referenzvariable, so wird diese kopiert und an die aufgerufene Methode übergeben Das Argument (in der aufrufenden Methode) und der Parameter (in der aufgerufenen Methode) verweisen beide auf das selbe Objekt. Aenderungen des Objektes sind in der aufrufenden Methode sichtbar Aenderungen der Referenzvariable sind in der aufrufenden Methode nicht sichtbar Wenn Sie die Bibliothekskarte eines Buches ändern so bleibt das Buch unverändert 37

33 Java Methodenaufruf In Java werden also Referenzvariable und Variable eines Basistyps immer kopiert. Die Entwickler haben darauf keinen Einfluss. Andere Programmiersprachen erlauben mehr Flexibilität. Für jeden Parameter kann bestimmt werden, wie er übergeben wird. Viele Fehler sind möglich. 38

34 Uebersicht 6.3 Parameter (Reference Type) 6.4 Konstruktoren 6.5 Noch ein Beispiel (Methoden) 6.6 Namesräume 6.7 static Methoden und Variablen 6.8 Module Copyright (c) Pearson and Thomas Gross 2016 All rights reserved. 39

35 Konstruktion und Initialisierung von Objekten Der new Operator liefert eine Referenz (einen Verweis) auf ein neues Objekt new class(): Exemplar (Instanz) der Klasse class new class[size]: Array der Länge size für Referenzen auf Exemplare der Klasse class Vergleiche mit: new int[size]: Array der Länge size für int Werte

36 Initialisierung von Objekten Bisher waren mehrere Anweisungen nötig, um ein Exemplar einer Klasse zu konstruieren und es zu initialisieren: Point p = new Point(); p.x = 3; p.y = 8; (N+1) Anweisungen bei N Attributen Lange Folgen von Anweisungen Leicht etwas zu übersehen

37 Initialisierung von Objekten Besser wäre es die Werte für die Attribute gleich anzugeben: Point p = new Point(3, 8); // better! Person employee = new Person("Paula", 123); Wir können so etwas für viele Arten von Objekten in Java machen.

38 Konstruktoren Konstruktor ( constructor ): Initialisiert den Zustand eines neuen Objektes. public type(parameters) { statements; Ausgeführt wenn der new Operator ausgeführt wird Es gibt keinen Rückgabewert. Im Rumpf können beliebige Anweisungen auftreten (wie in Methode)

39 Konstruktoren Ein Konstruktor ist keine Methode Konstruktoren sind optional Wenn eine Klassendefinition keinen Konstruktor enthält, dann stellt Java einen (voreingestellten) default Konstruktor ( default constructor ) zur Verfügung Der default Konstruktor hat keine Parameter und setzt alle Felder auf Null (entweder 0, 0.0, oder null)

40 Beispiele von Konstruktoren public class Point { int x; int y; // Constructs a Point at the given x/y location. public Point(int initialx, int initialy) { x = initialx; y = initialy; // Methods...

41 Beispiele von Konstruktoren public class Person { String name; int id; double hourlyrate; double [] hours; double [] overtime; // Constructs a Person with given name and Id public Person(String firstname, int uniqueid) { name = firstname; id = uniqueid; // Methods...

42 Konstruktor Attribute, die nicht in einem Konstruktor auf einen Wert gesetzt werden, werden auf Null gesetzt (0, 0.0, or null). Beispiel: public Point (int initialx) { x = initialx; Point p1 = new Point(7); // p1.y == 0 47

43 Ausführung eines Konstruktors in Zeitlupe Was passiert wenn dieser Code ausgeführt wird? Point p1 = new Point(7, 2);

44 Ausführung eines Konstruktors in Zeitlupe Was passiert wenn dieser Code ausgeführt wird? Point p1 = new Point(7, 2); p1 x y public Point(int initialx, int initialy) { x = initialx; y = initialy; public void setlocation(int newx, int newy) {

45 Ausführung eines Konstruktors in Zeitlupe Was passiert wenn dieser Code ausgeführt wird? Point p1 = new Point(7, 2); p1 x 0 y 0 public Point(int initialx, int initialy) { x = initialx; y = initialy; public void setlocation(int newx, int newy) {

46 Ausführung eines Konstruktors in Zeitlupe Was passiert wenn dieser Code ausgeführt wird? Point p1 = new Point(7, 2); p1 x 7 y 0 public Point(int initialx, int initialy) { x = initialx; y = initialy; public void setlocation(int newx, int newy) {

47 Ausführung eines Konstruktors in Zeitlupe Was passiert wenn dieser Code ausgeführt wird? Point p1 = new Point(7, 2); p1 x 7 y 2 public Point(int initialx, int initialy) { x = initialx; y = initialy; public void setlocation(int newx, int newy) {

48 Ausführung eines Konstruktors in Zeitlupe Was passiert wenn dieser Code ausgeführt wird? Point p1 = new Point(7, 2); p1 x 7 y 2 public Point(int initialx, int initialy) { x = initialx; y = initialy; public void setlocation(int newx, int newy) {

49 Mehrere Konstruktoren Eine Klasse kann mehrere Konstruktoren haben. Jeder Konstruktor muss eine unverwechselbare Liste von Parametern haben Entscheidend ist dass die Typen der Parameterliste unverwechselbar sind Erlaubt public Point(int initialx, int initialy) { x=initialx; y=initialy; public Point(int initialx) {x = nitialx; y = 0; Nicht erlaubt public Point(int initialx, int initialy) { x=initialx; y=initialy; public Point(int a, int b) { x = a; y = b;

50 Schreiben Sie einen Point Konstructor ohne Parameter der den Punkt mit (0, 0) initialisiert. // Constructs a new point at (0, 0). public Point() { x = 0; y = 0; 58

51 Häufige Fehler in Konstruktoren 1. (Erneute) Deklaration von Attributen als Variable: public Point(int initialx, int initialy) { int x = initialx; int y = initialy; Jetzt gibt es Variable x und y die nur im Konstruktor bekannt sind. Diese erhalten einen Wert aber die Attribute werden nicht modifiziert und bleiben 0.

52 Häufige Fehler in Konstruktoren 2. Versehentlich fürden Konstruktor einen Rückgabewert deklarieren: public void Point(int initialx, int initialy) { x = initialx; y = initialy; Nicht die Definition eines Konstruktors sondern die Definition einer Methode mit Namen Point

53 Häufige Fehler mit Konstruktoren 3.) Den parameterlosen default Konstruktor verwenden wenn andere Konstruktoren definiert wurden und kein parameterloser Konstruktor definiert wurde. class Point { int x; int y; public Point(int initialx, int initialy) { // methods // in the client Point p = new Point(); 61

54 Uebersicht 6.3 Parameter (Reference Type) 6.4 Konstruktoren 6.5 Noch ein Beispiel (Methoden) 6.6 Namesräume 6.7 static Methoden und Variablen 6.8 Module 62

55 Ein Problem: Teilfolgen finden Gegen sei ein Folge S der Länge n (S 0, S 1,, S n-1 ) wobei jedes S i aus einem (endlichen) Alphabet gewählt ist. Eine Folge T der Länge m heisst Teilfolge von S, wenn es m aufsteigend sortierte Indizes i 0, i 1,..., i m-1 gibt so dass S ik = T k für k = 0,, (m-1). Beispiel: S = ABCDE, T = ACD: (i 0,i 1,i 2 ) = (0,2,3) S = ABCDC, T = BDC: (i 0,i 1,i 2 ) = (1,3,4) 63

56 Teilfolgen finden Schreiben Sie ein Programm, dass für eine Folge S und eine nicht-negative ganze Zahl j alle Teilfolgen der Länge j von S bestimmt. 64

57 Beispiele S = abcd, j = 3 abc abd bcd acd S = abcd, j = 5 S = accb, j = 2 ac ac ab cc cb cb S = abcd, j = 0 leerer String ("") 65

58 Teilfolgen finden Folge: als (Java) String dargestellt. Alphabet: Default Alphabet der Java Implementation. nicht-negative ganze Zahl: int Schreiben Sie ein Programm, dass einen String S und eine nicht-negative ganze Zahl j einliest und alle Teilfolgen der Länge j ausgibt. 66

59 Teilfolgeprobleme Gemeinsame Teilfolgen Längstegemeinsame Teilfolgen Folgen von DNA, RNA, Protein Molekülen 67

60 68

61 69

62 import java.util.scanner; public class Subsequence { public static void main(string[] args) { Rahmen Scanner console = new Scanner(System.in); System.out.print("Input string (no spaces):"); String str = console.next(); System.out.print("Length of subsequences:"); int subseqlength = console.nextint(); // unser Programm // main 70

63 Ansatz 1. Finden von Indexfolgen i 0, i 1, i 2,, i j-1 a. Alle ausprobieren b. Zufällige (Index)Folgen generieren Speichern ob schon ausgegeben Neue geben entsprechenden String aus 2. Mit Strings (direkt) arbeiten Indices treten nicht direkt in Erscheinung 73

64 a b c d Länge 1 74

65 a b c d Länge 1 a b c d 75

66 a b c d Länge 2 a b c d 76

67 a b c d Länge 2 a a b c d b c d 77

68 a b c d Länge 2 a a b c d b a b c d b c d c d 78

69 a b c d Länge 2 a b c a b c d a b c d a b c d b c d c d d 79

70 a b c d Länge 2 a b c a b c d a b c d a b c d b c d c d d ab ac ad bc bd cd 80

71 String Länge s (gebildet aus diesem Teil von str, einem Prefix von str) String Länge (s+1) (gebildet aus dem Prefix von str) + g a b c d e f g h u v w x y z a b c d e f g h u v w x y z a b c d e f g h u v w x y z Länge j Brauchen String Länge (j-s) gebildet aus dem Rest Brauchen String Länge (j-s-1) gebildet aus dem Rest 81

72 String Länge 1 (gebildet aus diesem Teil von str, einem Prefix von str) String Länge 2 (gebildet aus dem Prefix von str) + b a b c d e a b c d e a b c d e Länge 3 Brauchen String Länge 2 gebildet aus dem Rest Brauchen String Länge 1 gebildet aus dem Rest String Länge 3 (gebildet aus dem Prefix von str) + c a b c d e Brauchen String Länge 0 gebildet aus dem Rest 82

73 Lösungs(anfang) Wenn wir einen String P haben und noch 0 Zeichen (aus dem unverarbeiteten Rest) dazu fügen müssen, dann haben wir ein Teilfolge mit j Zeichen gefunden. Wir fangen an mit P dem leeren String, t = j (Anzahl Zeichen) die wir noch brauchen, und der Rest ist der Eingabestring. 83

74 Lösungs(anfang) Wenn wir einen String P haben und noch 0 Zeichen (aus dem unverarbeiteten Rest) dazu fügen müssen, dann haben wir ein Teilfolge mit j Zeichen gefunden. Wir fangen an mit P dem leeren String, t = j (Anzahl Zeichen) die wir noch brauchen, und der Rest ist der Eingabestring. Wenn wir einen String P der Länge s haben (s<j, d.h. wir brauchen noch j-s Buchstaben aus dem Rest) dann nehmen wir den 1. Buchstaben des Rests, konkatenieren ihn mit P und machen weiter (d.h. brauchen noch j-s-1 Buchstaben, neuer Rest ist der alte Rest ohne den 1. Buchstaben). 84

75 Lösungs(anfang) Wenn wir einen String P der Länge s haben (s<j, d.h. wir brauchen noch j-s Buchstaben aus dem Rest) dann nehmen wir den 1. Buchstaben des Rests, konkatenieren ihn mit P und machen weiter (d.h. brauchen noch j-s-1 Buchstaben, neuer Rest ist der alte Rest ohne den 1. Buchstaben). Wenn der Rest leer ist dann können wir mit diesem String P nicht weiter arbeiten 85

76 String Länge 1 String Länge 2 String Länge 3 a b c a b c a b c a b c Länge 4 Brauchen String Länge 3 gebildet aus dem Rest "bc" Brauchen String Länge 2 gebildet aus dem Rest "c" Brauchen String Länge 1 gebildet aus dem Rest "" 86

77 String Länge s (gebildet aus diesem Teil von str, einem Prefix von str) a b c d e f g h u v w x y z a b c d e f g h u v w x y z Länge j Brauchen String Länge (j-s) gebildet aus dem Rest "g h u " a b c d e f h u v w x y z String Länge s Brauchen String Länge (j-s) gebildet aus dem Rest "h u v " 87

78 String Länge 1 (gebildet aus diesem Teil von str, einem Prefix von str) a b c d e a b c d e Länge 3 Brauchen String Länge 2 gebildet aus dem Rest String Länge 1 a c d e Brauchen String Länge 2 gebildet aus dem Rest

79 Lösung (weiter) Wenn wir einen String P der Länge s haben (s<j, d.h. wir brauchen noch j-s Buchstaben aus dem Rest, Rest nicht leer) 1. Wir nehmen den 1. Buchstaben des Rests, konkatenieren ihn mit P und machen weiter (d.h. brauchen noch j-s-1 Buchstaben, neuer Rest ist der alte Rest ohne den 1. Buchstaben) 2. Wir finden die j-s Buchstaben im Rest ohne den 1. Buchstaben (d.h., wir brauchen immer noch j-s Buchstaben, neuer Rest ist der alte Rest ohne den 1. Buchstaben) 89

80 90

81 import java.util.scanner; public class Subsequence { public static void main(string[] args) { Lösung Scanner console = new Scanner(System.in); System.out.print("Input string (no spaces):"); String str = console.next(); System.out.print("Length of subsequences:"); int subseqlength = console.nextint(); findsubsequence("", str, subseqlength) // main 91

82 public static void findsubsequence(string prefix, String remaining, int target) { // target: characters needed to reach desired subsequence length if (target == 0) { System.out.println(prefix); return; if (!remaining.isempty()) { findsubsequence(prefix + remaining.charat(0), remaining.substring(1), target-1); findsubsequence(prefix, remaining.substring(1), target); //findsubsequence 92

83 public static void findsubsequence(string prefix, String remaining, int target) { // target: characters needed to reach desired subsequence length if (target == 0) { System.out.println(prefix); return; if (!remaining.isempty()) { findsubsequence(prefix + remaining.charat(0), remaining.substring(1), target-1); findsubsequence(prefix, remaining.substring(1), target); //findsubsequence 93

84 public static void findsubsequence(string prefix, String remaining, int target){ mit Log/Trace for (int i=0; i<prefix.length(); i++) { System.out.print(" "); System.out.println("Prefix \"" + prefix + "\" Remaining \"" + remaining + "\" Target=" + target); if (target == 0) { System.out.println(prefix); return; if (!remaining.isempty()) { findsubsequence(prefix + remaining.charat(0), remaining.substring(1), target-1); findsubsequence(prefix, remaining.substring(1), target); 94

85 Input string (no spaces):abcd Length of subsequences:3 input = abcd 3 Prefix "" Remaining "abcd" Target=3 Prefix "a" Remaining "bcd" Target=2 Prefix "ab" Remaining "cd" Target=1 Prefix "abc" Remaining "d" Target=0 abc Prefix "ab" Remaining "d" Target=1 Prefix "abd" Remaining "" Target=0 abd Prefix "ab" Remaining "" Target=1 Prefix "a" Remaining "cd" Target=2 Prefix "ac" Remaining "d" Target=1 Prefix "acd" Remaining "" Target=0 acd Prefix "ac" Remaining "" Target=1 Prefix "a" Remaining "d" Target=2 Prefix "ad" Remaining "" Target=1 Log 95

86 Prefix "a" Remaining "" Target=2 Prefix "" Remaining "bcd" Target=3 Prefix "b" Remaining "cd" Target=2 Prefix "bc" Remaining "d" Target=1 Prefix "bcd" Remaining "" Target=0 bcd Prefix "bc" Remaining "" Target=1 Prefix "b" Remaining "d" Target=2 Prefix "bd" Remaining "" Target=1 Prefix "b" Remaining "" Target=2 Prefix "" Remaining "cd" Target=3 Prefix "c" Remaining "d" Target=2 Prefix "cd" Remaining "" Target=1 Prefix "c" Remaining "" Target=2 Prefix "" Remaining "d" Target=3 Prefix "d" Remaining "" Target=2 Prefix "" Remaining "" Target=3 Log 96

Einführung in die Programmierung I. 6.0 Objekte. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung I. 6.0 Objekte. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung I 6.0 Objekte Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013. and Thomas Gross 2016 All rights reserved. Uebersicht 6.3 Namesräume

Mehr

7.0 Arbeiten mit Objekten und Klassen

7.0 Arbeiten mit Objekten und Klassen 252-0027 Einführung in die Programmierung I 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.

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel

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

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung

Mehr

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

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

Mehr

2. Unterprogramme und Methoden

2. Unterprogramme und Methoden 2. Unterprogramme und Methoden Durch Methoden wird ausführbarer Code unter einem Namen zusammengefasst. Dieser Code kann unter Verwendung von sogenannten Parametern formuliert sein, denen später beim Aufruf

Mehr

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

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

Mehr

Objektorientierung (OO)

Objektorientierung (OO) Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members

Mehr

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

Mehr

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

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

Mehr

Repetitorium Informatik (Java)

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

Mehr

1 Klassen und Objekte

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

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:

Mehr

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

Mehr

Klassen als Datenstrukturen

Klassen als Datenstrukturen Einstieg in die Informatik mit Java, Vorlesung vom 27.11.07 Übersicht 1 Klassen als Datenstruktur 2 Vereinbarung von Klassen 3 Erzeugen von Objekten - Instanzen einer Klasse 4 Zugriff auf Attribute 5 Initialisierung

Mehr

Methoden und Wrapperklassen

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

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin 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

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

Tag 4 Repetitorium Informatik (Java)

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

Mehr

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Tag 5 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Methoden Deklaration

Mehr

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

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

Mehr

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften

Mehr

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

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

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine

Mehr

5. Java Arrays und Strings

5. Java Arrays und Strings Arrays Arrayvariable deklarieren: int[] z; z 5. Java Arrays und Strings Array erzeugen: z = new int[5]; Allokation, Referenzen, Elementzugriff, Mehrdimensionale Arrays, Strings, Stringvergleiche z ist

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

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

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Einführung in die strukturierte Programmierung Teil 5 Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Einführung in die strukturierte Programmierung Teil 5 Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind ausgewählte

Mehr

Algorithmen und Programmierung II

Algorithmen 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

Mehr

Informatik II Übung 05. Benjamin Hepp 3 April 2017

Informatik II Übung 05. Benjamin Hepp 3 April 2017 Informatik II Übung 05 Benjamin Hepp benjamin.hepp@inf.ethz.ch 3 April 2017 Java package Hierarchie import.. nur noetig um Klassen aus anderen Packeten zu importieren Es kann auch immer der vollstaendige

Mehr

Anweisungen zur Ablaufsteuerung

Anweisungen zur Ablaufsteuerung Anweisungen zur Ablaufsteuerung if-else switch while do-while for Ausdrücke Ein Ausdruck ist eine Folge von Variablen, Operatoren und Methodenaufrufen, der zu einem einzelnen Wert ausgewertet wird. Operanden

Mehr

Ausgabe:

Ausgabe: Aufgabe 2.10: Schreiben Sie ein Programm, das zunächst die Quadratzahlen zu den Zahlen 1-10 mit Hilfe einer While- Schleife und danach die Quadratzahlen zu den Zahlen 3, 6, 9,.., 30 mit Hilfe einer For-Schleife

Mehr

Visuelle Kryptographie. Anwendung von Zufallszahlen

Visuelle Kryptographie. Anwendung von Zufallszahlen Visuelle Kryptographie Anwendung von Zufallszahlen Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken, so dass Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken,

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 31. März 2009, c 2009 D.Rösner

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 24 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Klassen als Datenstruktur 2 Vereinbarung von

Mehr

OOP. Tagesprogramm. Aspektorientierte Programmierung. Annotationen

OOP. Tagesprogramm. Aspektorientierte Programmierung. Annotationen 1 2014-12-03 Tagesprogramm Aspektorientierte Programmierung Annotationen 2 Aspektorientierte Programmierung Programmierparadigma AspectJ separation of concerns Modularisierung Aspekte kapseln Verhalten

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert

Mehr

pue13 January 28, 2017

pue13 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

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 03: Wiederholung und Nutzereingaben Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Wiederholung Klassen, Objekte, Attribute und Methoden

Mehr

Konstruktor/Destruktor

Konstruktor/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

Mehr

Aspektorientierte Programmierung

Aspektorientierte Programmierung Aspektorientierte Programmierung Programmierparadigma AspectJ separation of concerns Modularisierung Aspekte kapseln Verhalten das mehrere Klassen betrifft Objektorientierte Programmiertechniken: Aspektorientiertheit,

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 21 Einstieg in die Informatik mit Java Felder, eindimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 21 1 Überblick: Was sind Felder? 2 Vereinbarung von Feldern

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1

Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1 Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1 Parameter-Übergabe-Mechanismen in Java und in anderen Sprachen. 1. Methoden vereinbaren mit Parametern Wenn man (z.b. in Java) eine Methode

Mehr

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Informatik II. Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017

Informatik II. Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017 1 Informatik II Übung 6 Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017 Heutiges Programm 2 1 Klassen - Technisch 2 Prediscussion

Mehr

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik Programmieren I Arrays Heusch 7.2 Ratz 5.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Arrays: Definition Arrays (dt. Felder) dienen zum Speichern mehrerer gleichartiger Daten

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) CS005 Objektorientierte Programmierung Bachelor of Science (Informatik) Th Letschert Felder Seite Th Letschert OOP Felder / Arrays Seite 2 Th Letschert Feld / Array Feld (auch Array) Daten unter einem

Mehr

Einführung in die Programmierung

Einführung in die Programmierung 252-0027 Einführung in die Programmierung 2.5 if -Anweisungen 2.6 Nochmals Schleifen: while Loops 2.Y Output Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.2 Typen und Variable Deklaration

Mehr

JAVA - Methoden - Rekursion

JAVA - Methoden - Rekursion Übungen Informatik I JAVA - Methoden - Rekursion http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 1 Methoden Methoden sind eine Zusammenfassung von Deklarationen und Anweisungen

Mehr

Übung 1: Installation + Test von Eclipse. Übung 2: Hello World

Übung 1: Installation + Test von Eclipse. Übung 2: Hello World Übung 1: Installation + Test von Eclipse Es soll die Installation der Entwicklungsumgebung Eclipse durchgeführt werden gemäss Dokument "InstallationTest.Eclipse.15.0.pdf" auf der DVD im Verzeichnis Eclipse.

Mehr

Einführung in die Programmierung I. 1.0 EBNF 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Einfü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

Umsetzung einer Klassenkarte in einer Programmiersprache

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

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 17 Einstieg in die Informatik mit Java Methoden und Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 17 1 Überblick 2 Felder als Parameter bei Methoden 3 Feld

Mehr

11.0 Systematisches Programmierung

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

Einführung in die Programmierung

Einfü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

Mehr

11. Java Klassen. Klassen - Technisch. Klassen - Beispiel: Erdbebendaten. Klassen - Konzeptuell

11. Java Klassen. Klassen - Technisch. Klassen - Beispiel: Erdbebendaten. Klassen - Konzeptuell Klassen - Technisch Eine Klasse ist eine Einheit mit einem Namen, die Daten und Funktionalität beinhaltet 11. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische

Mehr

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

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 7 Besprechung: 4. 8.12.2017 (KW 49) Vorbereitende

Mehr

2. Methoden. n Generelles zum Aufruf von Methoden. n Parameterübergabemechanismen (call by value, call by reference)

2. Methoden. n Generelles zum Aufruf von Methoden. n Parameterübergabemechanismen (call by value, call by reference) 2. Methoden n Generelles zum Aufruf von Methoden n Parameterübergabemechanismen (call by value, call by reference) n Speicherorganisation bei Methodenaufruf und Parameterübergabe (Laufzeitkeller) n vararg

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf

Mehr

Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen

Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen Schwerpunkte 10. Felder (Arrays) Teil 1 Java-Beispiele: Echo.java Primzahlen.java Monate.java Klassifikation von Typen in Programmiersprachen Array: einziger strukturierter Typ in Java Deklaration, Erzeugung

Mehr

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7. CoMa 04 Java II Paul Boeck Humboldt Universität zu Berlin Institut für Mathematik 7. Mai 2013 Paul Boeck CoMa 04 7. Mai 2013 1 / 13 Verzweigungen Wenn-Dann Beziehungen if (BEDINGUNG) { else if (BEDINGUNG2)

Mehr

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:

Mehr

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1

Mehr

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

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

Mehr

Algorithmen und Datenstrukturen 06

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

Mehr

Klassen mit Instanzmethoden

Klassen 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

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 02: Methoden Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2017 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 17 Inhalt Scanner

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Prozeduren in Java. streckeimperativ zur Verfügung. Grundlagen der funktionalen und imperativen Programmierung

Prozeduren in Java. streckeimperativ zur Verfügung. Grundlagen der funktionalen und imperativen Programmierung Die Erweiterung des Modulbegriffs um Prozeduren ermöglicht uns nun natürlich auch, diese Prozeduren in anderen Algorithmen zu verwenden Das Modul PhysikImperativ stellt z.b. die Methode (Prozedur streckeimperativ

Mehr

Ausnahmebehandlung. Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren. Ausnahmen abfangen. Ausnahmen definieren

Ausnahmebehandlung. Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren. Ausnahmen abfangen. Ausnahmen definieren Ausnahmebehandlung Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren Ausnahmen abfangen Ausnahmen definieren Sinnvolle Verwendung von Ausnahmen Informatik II: Objektorientierte SW-Entwicklung, Algorithmik,

Mehr

Elementare Konzepte von

Elementare Konzepte von Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)

Mehr

JAVA - Methoden

JAVA - Methoden Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 sind eine Zusammenfassung von Deklarationen und Anweisungen haben einen Namen und können

Mehr

Grundlagen C und C++ Einheit 04: Weitere Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

Grundlagen C und C++ Einheit 04: Weitere Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Grundlagen C und C++ Einheit 04: Weitere Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Teil 1: Weitere Grundlagen von C++ Das assert Statement File Input und

Mehr

Einführung in die Programmierung

Einführung in die Programmierung 252-0027 Einführung in die Programmierung 2.3.2 Verschachtelte Schleifen Thomas R. Gross Department Informatik ETH Zürich 2.3.2 Verschachtelte for Schleifen for Schleife for (initialization; test; update)

Mehr

Informatik I (D-MAVT)

Informatik I (D-MAVT) Informatik I (D-MAVT) Übungsstunde 9 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Nachbesprechung Übung 7 Besprechung/Vertiefung der Vorlesung Vorbesprechung Übung 9 Aufgabe 1:

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 24 Einstieg in die Informatik mit Java Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Lokale Variablen 2 Lokale Variablen in Blocks 3 Lokale Variablen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition

Mehr

Felder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich.

Felder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich. Felder Felder - Arrays Variable gleichen Types können in Feldern (array) zusammengefasst werden. Typ[] feldname; oder Typ feldname[]; dabei kann unter Benutzung des new-operators gleich die Dimension zugewiesen

Mehr

Übung Praktische Informatik I

Übung Praktische Informatik I Übung Praktische Informatik I HWS 2008/2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim guthier@pi4.informatik.uni-mannheim.de 24.10.08 6-1 Heutige große Übung Hinweise

Mehr

Durch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei

Durch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei Lösungsvorschläge zur Klausur zum Kurs 1618 Sommersemester 2001 am 22.9.2001 Aufgabe 1 a) Benutzungsbeziehung: class Kennzeichen class Fahrzeug boolean gueltigeskennzeichen (Kennzeichen kz) Objekte der

Mehr

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen Objektorientierte Programmierung mit Grundlagen 27.10.2008 1 Übersicht 27.10.2008 2 1 Übersicht Klassen und Objekte in - Klassen - Objekte - Klassen - Objekte 27.10.2008 3 Übersicht 27.10.2008 4 2 Einführung

Mehr

12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell

12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell Klassen - Technisch Eine Klasse ist eine Einheit mit einem Namen, die Daten und Funktionalität beinhaltet 12. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, Kapselung,

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Android will doch nur spielen. Java Übung

Android will doch nur spielen. Java Übung Android will doch nur spielen Java Übung Vorbereitung: Erstellen Sie mit Eclipse zunächst ein neues Java Projekt JavaUebungen. Lassen Sie die restlichen Einstellungen unverändert. Erzeugen Sie das Projekt

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Tag 4 Repetitorium Informatik (Java)

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

Mehr

14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch

14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch Klassen (Java) vs. Records (Pascal) 14. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung Pascal RECORDs in Pascal sind reine

Mehr

Ein String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient.

Ein String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient. Strings Ein String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient. Beispiel: String zeile = "Cusanus-Gymnasium Wittlich";

Mehr

Java Einführung Klassendefinitionen

Java Einführung Klassendefinitionen Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse

Mehr