Einführung in das Programmieren Probeklausur Lösungen

Größe: px
Ab Seite anzeigen:

Download "Einführung in das Programmieren Probeklausur Lösungen"

Transkript

1 Einführung in das Programmieren Probeklausur Lösungen Frederik Kanning

2 Aufgabe 1 b/c) void definiert Methode ohne Rückgabewert return beendet aktuellen Methodenaufruf wenn Rückgabetyp nicht void: legt zusätzlich Rückgabewert fest muss angegeben werden

3 Aufgabe 1 b/c) Beispiel Methode ohne Rückgabe 1 void printnum(int num) { 2 if(num < 0) return; 3 Std.out.println(num); 4 } Methode mit Rückgabe 1 int half(int num) { 2 return num / 2; 3 // Compiler-Fehler; wird niemals erreicht: 4 Std.out.println(num); 5 }

4 Aufgabe 1 d) extends definiert Klasse als Unterklasse von bereits vorhandener Klasse Zugriff auf alle Methoden und Variablen der Oberklasse (außer private) Objekte können in Variablen mit Typ der Oberklasse gespeichert werden Unterklasse hat auch den Typ der Oberklasse ( zuweisungskompatibel ) Methoden mit gleicher Signatur (Name, Parameter) werden ersetzt ersetzte Methoden können mit super weiter aufgerufen werden

5 Aufgabe 1 d) Beispiel Vererbung mit extends 1 class Vogel { 2 int alter; 3 void ruf() { 4 Std.out.println("mein alter ist " + alter); 5 } 6 } 7 8 class Ente extends Vogel { 9 // ersetzt ruf(), Zugriff auf Vogel.alter 10 void ruf() { 11 Std.out.println("quak " + alter); 12 } 13 }

6 Aufgabe 1 d) Fortsetzung Beispiel Verwendung von Ente und Vogel 1 Ente e = new Ente(); 2 // Zuweisung möglich, Ente auch vom Typ Vogel 3 Vogel v = e; 4 // Alter der Ente festlegen 5 e.alter = 42; 6 7 // Ausgabe: quak 42 8 // und nicht mein alter ist 42 9 e.ruf(); // Fehler, nicht jeder Vogel ist eine Ente 12 Ente e2 = new Vogel();

7 Aufgabe 2 1 int a = 2, b = 5; 2 boolean g = false;

8 Aufgabe 2 1 int a = 2, b = 5; 2 boolean g = false; 3 4 // g = false ((1 * 5) == 5) 5 g = g (--a * b == b);

9 Aufgabe 2 1 int a = 2, b = 5; 2 boolean g = false; 3 4 // g = false ((1 * 5) == 5) 5 g = g (--a * b == b); 6 // geändert: g = true, a = 1

10 Aufgabe 2 1 int a = 2, b = 5; 2 boolean g = false; 3 4 // g = false ((1 * 5) == 5) 5 g = g (--a * b == b); 6 // geändert: g = true, a = 1 7 // if(true) b = 5 + (1 + 3) 8 if (g) b += a + 3;

11 Aufgabe 2 1 int a = 2, b = 5; 2 boolean g = false; 3 4 // g = false ((1 * 5) == 5) 5 g = g (--a * b == b); 6 // geändert: g = true, a = 1 7 // if(true) b = 5 + (1 + 3) 8 if (g) b += a + 3; 9 // geändert: b = 9

12 Aufgabe 2 1 int a = 2, b = 5; 2 boolean g = false; 3 4 // g = false ((1 * 5) == 5) 5 g = g (--a * b == b); 6 // geändert: g = true, a = 1 7 // if(true) b = 5 + (1 + 3) 8 if (g) b += a + 3; 9 // geändert: b = a = b;

13 Aufgabe 2 1 int a = 2, b = 5; 2 boolean g = false; 3 4 // g = false ((1 * 5) == 5) 5 g = g (--a * b == b); 6 // geändert: g = true, a = 1 7 // if(true) b = 5 + (1 + 3) 8 if (g) b += a + 3; 9 // geändert: b = a = b; 12 // geändert: a = b = a;

14 Aufgabe 2 1 int a = 2, b = 5; 2 boolean g = false; 3 4 // g = false ((1 * 5) == 5) 5 g = g (--a * b == b); 6 // geändert: g = true, a = 1 7 // if(true) b = 5 + (1 + 3) 8 if (g) b += a + 3; 9 // geändert: b = a = b; 12 // geändert: a = b = a; 15 // da b bereits 9, keine Änderung mehr

15 Aufgabe 2 1 int a = 2, b = 5; 2 boolean g = false; 3 4 // g = false ((1 * 5) == 5) 5 g = g (--a * b == b); 6 // geändert: g = true, a = 1 7 // if(true) b = 5 + (1 + 3) 8 if (g) b += a + 3; 9 // geändert: b = a = b; 12 // geändert: a = b = a; 15 // da b bereits 9, keine Änderung mehr 16 // Ergebnis: a = 9, b = 9, g = true

16 Aufgabe 3 1 int [] vec = {1,2,3,4,5}; 2 for (int i = 3; i < 7; i++) { 3 if (i%2 == 0) continue; 4 vec[i - 2] *= vec[i - 3]; 5 } i i % 2 Anweisung vec[i - 2] *= vec[i - 3]

17 Aufgabe 3 1 int [] vec = {1,2,3,4,5}; 2 for (int i = 3; i < 7; i++) { 3 if (i%2 == 0) continue; 4 vec[i - 2] *= vec[i - 3]; 5 } i i % 2 Anweisung vec[i - 2] *= vec[i - 3] 3 1

18 Aufgabe 3 1 int [] vec = {1,2,3,4,5}; 2 for (int i = 3; i < 7; i++) { 3 if (i%2 == 0) continue; 4 vec[i - 2] *= vec[i - 3]; 5 } i i % 2 Anweisung vec[i - 2] *= vec[i - 3] 3 1 vec[1] = vec[1] * vec[0] //=2 Ergebnis:

19 Aufgabe 3 1 int [] vec = {1,2,3,4,5}; 2 for (int i = 3; i < 7; i++) { 3 if (i%2 == 0) continue; 4 vec[i - 2] *= vec[i - 3]; 5 } i i % 2 Anweisung vec[i - 2] *= vec[i - 3] 3 1 vec[1] = vec[1] * vec[0] //=2 Ergebnis: vec = {1,2,3,4,5}

20 Aufgabe 3 1 int [] vec = {1,2,3,4,5}; 2 for (int i = 3; i < 7; i++) { 3 if (i%2 == 0) continue; 4 vec[i - 2] *= vec[i - 3]; 5 } i i % 2 Anweisung vec[i - 2] *= vec[i - 3] 3 1 vec[1] = vec[1] * vec[0] //=2 Ergebnis: vec = {1,2,3,4,5} 4 0

21 Aufgabe 3 1 int [] vec = {1,2,3,4,5}; 2 for (int i = 3; i < 7; i++) { 3 if (i%2 == 0) continue; 4 vec[i - 2] *= vec[i - 3]; 5 } i i % 2 Anweisung vec[i - 2] *= vec[i - 3] 3 1 vec[1] = vec[1] * vec[0] //=2 Ergebnis: vec = {1,2,3,4,5} 4 0 Array unverändert

22 Aufgabe 3 1 int [] vec = {1,2,3,4,5}; 2 for (int i = 3; i < 7; i++) { 3 if (i%2 == 0) continue; 4 vec[i - 2] *= vec[i - 3]; 5 } i i % 2 Anweisung vec[i - 2] *= vec[i - 3] 3 1 vec[1] = vec[1] * vec[0] //=2 Ergebnis: vec = {1,2,3,4,5} 4 0 Array unverändert 5 1

23 Aufgabe 3 1 int [] vec = {1,2,3,4,5}; 2 for (int i = 3; i < 7; i++) { 3 if (i%2 == 0) continue; 4 vec[i - 2] *= vec[i - 3]; 5 } i i % 2 Anweisung vec[i - 2] *= vec[i - 3] 3 1 vec[1] = vec[1] * vec[0] //=2 Ergebnis: vec = {1,2,3,4,5} 4 0 Array unverändert 5 1 vec[3] = vec[3] * vec[2] //=12 Ergebnis:

24 Aufgabe 3 1 int [] vec = {1,2,3,4,5}; 2 for (int i = 3; i < 7; i++) { 3 if (i%2 == 0) continue; 4 vec[i - 2] *= vec[i - 3]; 5 } i i % 2 Anweisung vec[i - 2] *= vec[i - 3] 3 1 vec[1] = vec[1] * vec[0] //=2 Ergebnis: vec = {1,2,3,4,5} 4 0 Array unverändert 5 1 vec[3] = vec[3] * vec[2] //=12 Ergebnis: vec = {1,2,3,12,5}

25 Aufgabe 3 1 int [] vec = {1,2,3,4,5}; 2 for (int i = 3; i < 7; i++) { 3 if (i%2 == 0) continue; 4 vec[i - 2] *= vec[i - 3]; 5 } i i % 2 Anweisung vec[i - 2] *= vec[i - 3] 3 1 vec[1] = vec[1] * vec[0] //=2 Ergebnis: vec = {1,2,3,4,5} 4 0 Array unverändert 5 1 vec[3] = vec[3] * vec[2] //=12 Ergebnis: vec = {1,2,3,12,5} 6 0

26 Aufgabe 3 1 int [] vec = {1,2,3,4,5}; 2 for (int i = 3; i < 7; i++) { 3 if (i%2 == 0) continue; 4 vec[i - 2] *= vec[i - 3]; 5 } i i % 2 Anweisung vec[i - 2] *= vec[i - 3] 3 1 vec[1] = vec[1] * vec[0] //=2 Ergebnis: vec = {1,2,3,4,5} 4 0 Array unverändert 5 1 vec[3] = vec[3] * vec[2] //=12 Ergebnis: vec = {1,2,3,12,5} 6 0 Array unverändert Endergebnis: vec = {1,2,3,12,5}

27 Aufgabe 4 a) 1 public int quadrate() { 2 Std.out.print("Bitte...: n="); 3 int n = Std.in.readInt() 4 Std.out.print("Die... " n " Quadrat...: "); 5 for (i = 0; i < n; i++); 6 Std.out.print(i*i + " "); 7 }

28 Aufgabe 4 b) 1 public void quadrate() { 2 Std.out.print("Bitte...: n="); 3 int n = Std.in.readInt(); 4 Std.out.print("Die... "+n+" Quadrat...: "); 5 for (int i = 1; i <= n; i++) 6 Std.out.print(i*i + " "); 7 }

29 Aufgabe 5 a) For-Schleife for(int i = 1; i <= n; i++) {... } Äquivalente While-Schleife

30 Aufgabe 5 a) For-Schleife for(int i = 1; i <= n; i++) {... } Äquivalente While-Schleife

31 Aufgabe 5 a) For-Schleife for(int i = 1; i <= n; i++) {... } Äquivalente While-Schleife 1 void zahlen_while(int n) { 2 int i = 1; 3 while(i <= n) { 4 Std.out.println(i); 5 i++; 6 } 7 }

32 Aufgabe 5 b) Lösung 1 void zahlen_rek(int n) { 2 if(n > 0) { 3 zahlen_rek(n - 1); 4 Std.out.println(n); 5 } 6 } Beispiel, n = 3

33 Aufgabe 5 b) Lösung 1 void zahlen_rek(int n) { 2 if(n > 0) { 3 zahlen_rek(n - 1); 4 Std.out.println(n); 5 } 6 } Beispiel, n = 3 zahlen_rek(3)

34 Aufgabe 5 b) Lösung 1 void zahlen_rek(int n) { 2 if(n > 0) { 3 zahlen_rek(n - 1); 4 Std.out.println(n); 5 } 6 } Beispiel, n = 3 zahlen_rek(3) zahlen_rek(2)

35 Aufgabe 5 b) Lösung 1 void zahlen_rek(int n) { 2 if(n > 0) { 3 zahlen_rek(n - 1); 4 Std.out.println(n); 5 } 6 } Beispiel, n = 3 zahlen_rek(3) zahlen_rek(2) zahlen_rek(1)

36 Aufgabe 5 b) Lösung 1 void zahlen_rek(int n) { 2 if(n > 0) { 3 zahlen_rek(n - 1); 4 Std.out.println(n); 5 } 6 } Beispiel, n = 3 zahlen_rek(3) zahlen_rek(2) zahlen_rek(1) zahlen_rek(0) -- Abbruch

37 Aufgabe 5 b) Lösung 1 void zahlen_rek(int n) { 2 if(n > 0) { 3 zahlen_rek(n - 1); 4 Std.out.println(n); 5 } 6 } Beispiel, n = 3 zahlen_rek(3) zahlen_rek(2) zahlen_rek(1) -- println(1) zahlen_rek(0) -- Abbruch

38 Aufgabe 5 b) Lösung 1 void zahlen_rek(int n) { 2 if(n > 0) { 3 zahlen_rek(n - 1); 4 Std.out.println(n); 5 } 6 } Beispiel, n = 3 zahlen_rek(3) zahlen_rek(2) -- println(2) zahlen_rek(1) -- println(1) zahlen_rek(0) -- Abbruch

39 Aufgabe 5 b) Lösung 1 void zahlen_rek(int n) { 2 if(n > 0) { 3 zahlen_rek(n - 1); 4 Std.out.println(n); 5 } 6 } Beispiel, n = 3 zahlen_rek(3) -- println(3) zahlen_rek(2) -- println(2) zahlen_rek(1) -- println(1) zahlen_rek(0) -- Abbruch

40 Aufgabe 6 a) Fibonacci-Zahlen f 0 = 0, f 1 = 1, f n = f n 1 + f n 2

41 Aufgabe 6 a) Fibonacci-Zahlen f 0 = 0, f 1 = 1, f n = f n 1 + f n 2 Berechnung von f 6 n f n

42 Aufgabe 6 a) Fibonacci-Zahlen f 0 = 0, f 1 = 1, f n = f n 1 + f n 2 Berechnung von f 6 n f n

43 Aufgabe 6 a) Fibonacci-Zahlen f 0 = 0, f 1 = 1, f n = f n 1 + f n 2 Berechnung von f 6 n f n

44 Aufgabe 6 b) Fibonacci-Zahlen f 0 = 0, f 1 = 1, f n = f n 1 + f n 2 Rekursive Lösung 1 int fib_rek(int n) { 2 if(n == 0) 3 return 0; 4 if(n == 1) 5 return 1; 6 return fib rek(n-1) + fib rek(n-2); 7 }

45 Aufgabe 6 b) Fibonacci-Zahlen f 0 = 0, f 1 = 1, f n = f n 1 + f n 2 Rekursive Lösung 1 int fib_rek(int n) { 2 if(n == 0) 3 return 0; 4 if(n == 1) 5 return 1; 6 return fib rek(n-1) + fib rek(n-2); 7 }

46 Aufgabe 6 c) Iterative Lösung 1 int fib_it(int n) {

47 Aufgabe 6 c) Iterative Lösung 1 int fib_it(int n) { 2 int a = 0; // n int b = 1; // n - 1

48 Aufgabe 6 c) Iterative Lösung 1 int fib_it(int n) { 2 int a = 0; // n int b = 1; // n for(int i = 1; i <= n; i++) { 5 int t = b; // b zwischenspeichern 6 b = a + b; // f n+1 = f n + f n 1

49 Aufgabe 6 c) Iterative Lösung 1 int fib_it(int n) { 2 int a = 0; // n int b = 1; // n for(int i = 1; i <= n; i++) { 5 int t = b; // b zwischenspeichern 6 b = a + b; // f n+1 = f n + f n 1 7 a = t; 8 } 9 return a; 10 }

50 Aufgabe 7 Mögliches Verfahren Integer: direkter Zugriff auf Ziffern nicht möglich

51 Aufgabe 7 Mögliches Verfahren Integer: direkter Zugriff auf Ziffern nicht möglich letzte Ziffer einer Zahl?

52 Aufgabe 7 Mögliches Verfahren Integer: direkter Zugriff auf Ziffern nicht möglich letzte Ziffer einer Zahl? Rest von Divison durch 10, Beispiel: 42 : 10 = 4, Rest 2

53 Aufgabe 7 Mögliches Verfahren Integer: direkter Zugriff auf Ziffern nicht möglich letzte Ziffer einer Zahl? Rest von Divison durch 10, Beispiel: 42 : 10 = 4, Rest 2 in Java: int rest = 42 % 10 (Modulo-Operator)

54 Aufgabe 7 Mögliches Verfahren Integer: direkter Zugriff auf Ziffern nicht möglich letzte Ziffer einer Zahl? Rest von Divison durch 10, Beispiel: 42 : 10 = 4, Rest 2 in Java: int rest = 42 % 10 (Modulo-Operator) immer die zu addierende Ziffer zur letzten Stelle machen

55 Aufgabe 7 Mögliches Verfahren Integer: direkter Zugriff auf Ziffern nicht möglich letzte Ziffer einer Zahl? Rest von Divison durch 10, Beispiel: 42 : 10 = 4, Rest 2 in Java: int rest = 42 % 10 (Modulo-Operator) immer die zu addierende Ziffer zur letzten Stelle machen mittels ganzzahliger Division durch 1, 10, , bis alle Stellen verrechnet

56 Aufgabe 7 Mögliches Verfahren Integer: direkter Zugriff auf Ziffern nicht möglich letzte Ziffer einer Zahl? Rest von Divison durch 10, Beispiel: 42 : 10 = 4, Rest 2 in Java: int rest = 42 % 10 (Modulo-Operator) immer die zu addierende Ziffer zur letzten Stelle machen mittels ganzzahliger Division durch 1, 10, , bis alle Stellen verrechnet ist der Fall, wenn Division nur noch Null ergibt

57 Aufgabe 7 Mögliches Verfahren Integer: direkter Zugriff auf Ziffern nicht möglich letzte Ziffer einer Zahl? Rest von Divison durch 10, Beispiel: 42 : 10 = 4, Rest 2 in Java: int rest = 42 % 10 (Modulo-Operator) immer die zu addierende Ziffer zur letzten Stelle machen mittels ganzzahliger Division durch 1, 10, , bis alle Stellen verrechnet ist der Fall, wenn Division nur noch Null ergibt Beispiel: Quersumme von a = 2634

58 Aufgabe 7 Mögliches Verfahren Integer: direkter Zugriff auf Ziffern nicht möglich letzte Ziffer einer Zahl? Rest von Divison durch 10, Beispiel: 42 : 10 = 4, Rest 2 in Java: int rest = 42 % 10 (Modulo-Operator) immer die zu addierende Ziffer zur letzten Stelle machen mittels ganzzahliger Division durch 1, 10, , bis alle Stellen verrechnet ist der Fall, wenn Division nur noch Null ergibt Beispiel: Quersumme von a = 2634 a : 1 = 2634, 2634 % 10 = 4 Summe: 4

59 Aufgabe 7 Mögliches Verfahren Integer: direkter Zugriff auf Ziffern nicht möglich letzte Ziffer einer Zahl? Rest von Divison durch 10, Beispiel: 42 : 10 = 4, Rest 2 in Java: int rest = 42 % 10 (Modulo-Operator) immer die zu addierende Ziffer zur letzten Stelle machen mittels ganzzahliger Division durch 1, 10, , bis alle Stellen verrechnet ist der Fall, wenn Division nur noch Null ergibt Beispiel: Quersumme von a = 2634 a : 10 = 263, 263 % 10 = 3 Summe: 4 + 3

60 Aufgabe 7 Mögliches Verfahren Integer: direkter Zugriff auf Ziffern nicht möglich letzte Ziffer einer Zahl? Rest von Divison durch 10, Beispiel: 42 : 10 = 4, Rest 2 in Java: int rest = 42 % 10 (Modulo-Operator) immer die zu addierende Ziffer zur letzten Stelle machen mittels ganzzahliger Division durch 1, 10, , bis alle Stellen verrechnet ist der Fall, wenn Division nur noch Null ergibt Beispiel: Quersumme von a = 2634 a : 100 = 26, 26 % 10 = 6 Summe:

61 Aufgabe 7 Mögliches Verfahren Integer: direkter Zugriff auf Ziffern nicht möglich letzte Ziffer einer Zahl? Rest von Divison durch 10, Beispiel: 42 : 10 = 4, Rest 2 in Java: int rest = 42 % 10 (Modulo-Operator) immer die zu addierende Ziffer zur letzten Stelle machen mittels ganzzahliger Division durch 1, 10, , bis alle Stellen verrechnet ist der Fall, wenn Division nur noch Null ergibt Beispiel: Quersumme von a = 2634 a : 1000 = 2, 2 % 10 = 2 Summe:

62 Aufgabe 7 Mögliches Verfahren Integer: direkter Zugriff auf Ziffern nicht möglich letzte Ziffer einer Zahl? Rest von Divison durch 10, Beispiel: 42 : 10 = 4, Rest 2 in Java: int rest = 42 % 10 (Modulo-Operator) immer die zu addierende Ziffer zur letzten Stelle machen mittels ganzzahliger Division durch 1, 10, , bis alle Stellen verrechnet ist der Fall, wenn Division nur noch Null ergibt Beispiel: Quersumme von a = 2634 a : = 0, Abbruch Summe: = 15

63 Aufgabe 7 Code 1 int quersumme(int n) {

64 Aufgabe 7 Code 1 int quersumme(int n) { 2 int sum = 0;

65 Aufgabe 7 Code 1 int quersumme(int n) { 2 int sum = 0; 3 while(n > 0) {

66 Aufgabe 7 Code 1 int quersumme(int n) { 2 int sum = 0; 3 while(n > 0) { 4 sum += n % 10;

67 Aufgabe 7 Code 1 int quersumme(int n) { 2 int sum = 0; 3 while(n > 0) { 4 sum += n % 10; 5 n /= 10; 6 }

68 Aufgabe 7 Code 1 int quersumme(int n) { 2 int sum = 0; 3 while(n > 0) { 4 sum += n % 10; 5 n /= 10; 6 } 7 return sum; 8 }

69 Aufgabe 8 a) Ausgabe: Erzeuge A- Objekt Erzeuge A- Objekt Erzeuge B- Objekt Erzeuge A- Objekt Erzeuge B- Objekt Erzeuge C- Objekt

70 Aufgabe 8 a) Erläuterung I A a = new A(1); ruft Konstruktor von A auf, Ausgabe Erzeuge A- Objekt setzt Objektvariable x auf 1 Konstruktoren haben denselben Namen wie ihre Klasse und keinen Rückgabetyp (auch kein void!)

71 Aufgabe 8 a) Erläuterung I A a = new A(1); ruft Konstruktor von A auf, Ausgabe Erzeuge A- Objekt setzt Objektvariable x auf 1 Konstruktoren haben denselben Namen wie ihre Klasse und keinen Rückgabetyp (auch kein void!) B b = new B(0); ruft Konstruktor von B auf da B von A abgeleitet, wird durch super(x); zuerst Konstruktor von A aufgerufen Ausgabe: Erzeuge A- Objekt Erzeuge B- Objekt

72 Aufgabe 8 a) Erläuterung II C c = new C(5); ruft Konstruktor von C auf da C von B, und B von A abgeleitet, werden analog die Konstruktoren A, B, C nacheinander aufgerufen Verkettung über beliebig viele Vererbungsstufen möglich Ausgabe: Erzeuge A- Objekt Erzeuge B- Objekt Erzeuge C- Objekt

73 Aufgabe 8 a) Erläuterung III b.foo(50); B definiert keine Methode foo(int x) daher wurde A.foo vererbt und wird jetzt ausgeführt: zwei verschachtelte For-Schleifen, jeweils n mal Methode berechnet daher effektiv x = x + n*n Ausgabe: 2500

74 Aufgabe 8 a) Erläuterung IV c.foo(50); foo(int x) wurde in Klasse C neu definiert zählt Objektvariable x so lange runter, bis x-- < 0 Post-Decrement: gibt erst aktuellen Wert zurück und zählt dann runter (bei --x genau umgekehrt) -1 erster Wert, der Bedingung nicht mehr erfüllt danach wird noch einmal runtergezählt: x hat nach Schleife den Wert -2 Ausgabe: -2

75 Aufgabe 8 a) Erläuterung V 1 public static void increment(int y) { 2 y++; 3 } 4 int y = 5; 5 increment(y); b.increment(y);

76 Aufgabe 8 a) Erläuterung V 1 public static void increment(int y) { 2 y++; 3 } 4 int y = 5; 5 increment(y); b.increment(y); zählt die lokale Variable y innerhalb der Methode foo() hoch beide Variablen heißen gleich, existieren aber getrennt voneinander Änderung wirkt sich nicht auf das y in TestABC.main aus! einzige Verbindung: beim Aufruf wird der Wert von main-y nach foo-y kopiert Ausgabe: 5

77 Aufgabe 8 b) B.increment greift nicht auf nicht-statische Methoden oder Variablen ihrer Klasse zu kann daher als einzige Methode statisch deklariert werden

78 Aufgabe 8 b) B.increment greift nicht auf nicht-statische Methoden oder Variablen ihrer Klasse zu kann daher als einzige Methode statisch deklariert werden Achtung: Zugriffe auf nicht-statische Teile der Klasse, die sich auf ein Objekt beziehen, sind erlaubt:

79 Aufgabe 8 b) Beispiel B.increment greift nicht auf nicht-statische Methoden oder Variablen ihrer Klasse zu kann daher als einzige Methode statisch deklariert werden Achtung: Zugriffe auf nicht-statische Teile der Klasse, die sich auf ein Objekt beziehen, sind erlaubt: 1 class X { 2 int k; 3 static void f() { 4 // nicht erlaubt: k = 42; 5 // aber: 6 X x = new X(); 7 x.k = 42; 8 } 9 }

80 Aufgabe 8 b) statisch vs. nicht-statisch I

81 Aufgabe 8 b) statisch vs. nicht-statisch I nicht-statische Methoden (und Variablen) gehören zu einem Objekt

82 Aufgabe 8 b) statisch vs. nicht-statisch I nicht-statische Methoden (und Variablen) gehören zu einem Objekt können nur mit einem Objekt verwendet werden

83 Aufgabe 8 b) statisch vs. nicht-statisch I nicht-statische Methoden (und Variablen) gehören zu einem Objekt können nur mit einem Objekt verwendet werden Achtung: in nicht-statischen Methoden existiert immer ein Objekt, this

84 Aufgabe 8 b) statisch vs. nicht-statisch I nicht-statische Methoden (und Variablen) gehören zu einem Objekt können nur mit einem Objekt verwendet werden Achtung: in nicht-statischen Methoden existiert immer ein Objekt, this statische Methoden und Variablen sind lediglich Klassengebunden

85 Aufgabe 8 b) statisch vs. nicht-statisch I nicht-statische Methoden (und Variablen) gehören zu einem Objekt können nur mit einem Objekt verwendet werden Achtung: in nicht-statischen Methoden existiert immer ein Objekt, this statische Methoden und Variablen sind lediglich Klassengebunden existieren automatisch genau einmal pro Klasse

86 Aufgabe 8 b) statisch vs. nicht-statisch I nicht-statische Methoden (und Variablen) gehören zu einem Objekt können nur mit einem Objekt verwendet werden Achtung: in nicht-statischen Methoden existiert immer ein Objekt, this statische Methoden und Variablen sind lediglich Klassengebunden existieren automatisch genau einmal pro Klasse sind ohne Objekt benutzbar

87 Aufgabe 8 b) statisch vs. nicht-statisch II Beispiel 1 // f() statisch; wird an der Klasse aufgerufen 2 X.f();

88 Aufgabe 8 b) statisch vs. nicht-statisch II Beispiel 1 // f() statisch; wird an der Klasse aufgerufen 2 X.f(); 3 4 // k ist nicht statisch 5 X y = new X(); 6 //... 7 y.k = 73;

89 Aufgabe 8 b) statisch vs. nicht-statisch II Beispiel 1 // f() statisch; wird an der Klasse aufgerufen 2 X.f(); 3 4 // k ist nicht statisch 5 X y = new X(); 6 //... 7 y.k = 73; 8 9 // auch zulässig, aber zu vermeiden 10 y.f();

90 Aufgabe 8 b) this this ist immer das aktuelle Objekt

91 Aufgabe 8 b) this Beispiel this ist immer das aktuelle Objekt 1 class X { 2 //... 3 void g() { 4 this.k = 23; 5 // oder, wenn k nicht auch lokal 6 // innerhalb von g() definiert: 7 k = 23; 8 } 9 }

92 Aufgabe 8 b) this Beispiel this ist immer das aktuelle Objekt 1 class X { 2 //... 3 void g() { 4 this.k = 23; 5 // oder, wenn k nicht auch lokal 6 // innerhalb von g() definiert: 7 k = 23; 8 } 9 } 10 X x1 = new X(), x2 = new X();

93 Aufgabe 8 b) this Beispiel this ist immer das aktuelle Objekt 1 class X { 2 //... 3 void g() { 4 this.k = 23; 5 // oder, wenn k nicht auch lokal 6 // innerhalb von g() definiert: 7 k = 23; 8 } 9 } 10 X x1 = new X(), x2 = new X(); 11 x1.g(); // this ist hier x1

94 Aufgabe 8 b) this Beispiel this ist immer das aktuelle Objekt 1 class X { 2 //... 3 void g() { 4 this.k = 23; 5 // oder, wenn k nicht auch lokal 6 // innerhalb von g() definiert: 7 k = 23; 8 } 9 } 10 X x1 = new X(), x2 = new X(); 11 x1.g(); // this ist hier x1 12 x2.g(); // hier this = x2

95 Aufgabe 9 I 1 public double area() { 2 return Math.PI * r * r; 3 } 4 5 public double perimeter() { 6 return 2 * Math.PI * r; 7 } 8 9 public double diameter() { 10 return 2 * r; 11 }

96 Aufgabe 9 II 1 public boolean overlap(circle that) { 2 return Math.sqrt ( 3 (this.x - that.x) * (this.x - that.x) 4 + (this.y - that.y) * (this.y - that.y) 5 ) <= this.r + that.r; 6 } 7 8 public double distance(circle that) { 9 if (overlap(that)) 10 return 0; 11 return Math.sqrt ( 12 (this.x - that.x) * (this.x - that.x) 13 + (this.y - that.y) * (this.y - that.y) 14 ) - this.r - that.r; 15 }

97 Aufgabe 9 III 1 public void draw(turtle t) { 2 double b = 2*r * Math.sin(Math.PI / 2 / 180); 3 t.setposition(x, y); 4 t.lt(90); 5 t.fd(r); 6 t.rt(90); 7 t.pd(); 8 for (int i = 0; i < 360; i++) { 9 t.rt(1); 10 t.fd(b); 11 } 12 t.pu(); 13 }

98 Aufgabe 10 1 private Color c; 2 // Konstruktor 3 public ColoredCircle(double x, double y, 4 double r, Color c) { 5 // Wichtig: Oberklassen-Konstruktor vor 6 // allem anderen aufrufen, sonst Fehler 7 super(x, y, r); 8 // Farbe speichern 9 this.c = c; 10 } 11 // Methode aus Oberklasse überschreiben 12 public void draw(turtle t) { 13 t.setpencolor(c); 14 // überschriebene Methode aufrufen 15 super.draw(t); 16 }

99 Fragen bis hierhin?

JAVA für Nichtinformatiker - Probeklausur -

JAVA für Nichtinformatiker - Probeklausur - JAVA für Nichtinformatiker - Probeklausur - Die folgenden Aufgaben sollten in 150 Minuten bearbeitet werden. Aufgabe 1: Erläutere kurz die Bedeutung der folgenden Java-Schlüsselwörter und gib Sie jeweils

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

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 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

Mehr

Vorkurs Informatik WiSe 15/16

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

Mehr

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

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

Mehr

Erste Java-Programme (Scopes und Rekursion)

Erste Java-Programme (Scopes und Rekursion) Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/

Mehr

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

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]

Mehr

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

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit Primitive Datentypen Fließkommazahlen float: Fließkommazahl nach IEEE 754 Standard mit 32 bit Vorzeichen Exponent 8 bit Mantisse 23 bit double: Fließkommazahl nach IEEE 754 Standard mit 64 bit Vorzeichen

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

Musterlösung Stand: 5. Februar 2009

Musterlösung Stand: 5. Februar 2009 Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)

Mehr

Java Zusammenfassung. Basisdatentypen ganzzahlig: Byte, Short, Integer, Long Fließkomma: Float, Double Zeichen: Character Wahrheitswerte: Boolean

Java Zusammenfassung. Basisdatentypen ganzzahlig: Byte, Short, Integer, Long Fließkomma: Float, Double Zeichen: Character Wahrheitswerte: Boolean Java Zusammenfassung Martin Zettwitz, Otto-von-Guericke Universität Magdeburg Standardprogramm - Einstieg/Initialisierung in der main() Funktion - Hier(Basic/Start) die Variablen deklarieren, Methoden

Mehr

Polymorphie. 15. Java Objektorientierung II

Polymorphie. 15. Java Objektorientierung II 432 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 433 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen

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

Polymorphie. 15. Java Objektorientierung II

Polymorphie. 15. Java Objektorientierung II 446 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 447 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

Probeklausur Java Einführung in die Informatik. Wintersemester 2014/2015. Musterlösung

Probeklausur Java Einführung in die Informatik. Wintersemester 2014/2015. Musterlösung Fakultät IV NI & CV Probeklausur Java Einführung in die Informatik Wintersemester 2014/2015 Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen

Mehr

Algorithmen und Datenstrukturen 07

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

Mehr

2 Programmieren in Java I noch ohne Nachbearbeitung

2 Programmieren in Java I noch ohne Nachbearbeitung 1 2 Programmieren in Java I noch ohne Nachbearbeitung 2.1 Was sind Programme? Eingabe = Verarbeitung = Ausgabe Die Eingabe kann sein Konstanten im Quelltext; Kommandozeilenparameter oder interaktive Eingabe

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

Fakultät IV Elektrotechnik/Informatik

Fakultät IV Elektrotechnik/Informatik Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)

Mehr

Listing 1: Cowboy. Listing 2: Woody

Listing 1: Cowboy. Listing 2: Woody Musterlösung Test 3 Aufgabe 1: Cowboy Listing 1: Cowboy class Cowboy { public String rope ( Cowboy that ) { if ( this == that ) { return exclaim (); 5 else { return " Caught "; public String exclaim ()

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 6. März 2013 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

Tag 8 Repetitorium Informatik (Java)

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

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de

Mehr

Fragen zur OOP in Java

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

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy PROCESSING EINE ZUSAMMENFASSUNG Created by Michael Kirsch & Beat Rossmy INHALT 1. Typen und Operatoren 1. Datentypen 3. Klassen und Objekte 1. Klassen und Objekte 2. Operatoren 2. Konstruktor 3. Typkonversion

Mehr

Kurzskript zur Veranstaltung Programmieren Prof. Dipl.-Ing. Jirka R. Dell'Oro-Friedl 2012

Kurzskript zur Veranstaltung Programmieren Prof. Dipl.-Ing. Jirka R. Dell'Oro-Friedl 2012 Kurzskript zur Veranstaltung Programmieren Prof. Dipl.-Ing. Jirka R. Dell'Oro-Friedl 2012 Kurzskript Programmieren 2012 Prof. Dipl.-Ing. Dell'Oro-Friedl, HFU Seite 1/10 Datentypen, Konstanten, Variablen,

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

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

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH 1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch

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

Programmierung für Mathematik HS11

Programmierung für Mathematik HS11 software evolution & architecture lab Programmierung für Mathematik HS11 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code finden und korrigieren

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

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

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

Mehr

AuD-Tafelübung T-B5b

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

Mehr

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 / 41 Einstieg in die Informatik mit Java Weitere Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick 2 Verbundanweisung 3 Bedingte Anweisung 4 Auswahlanweisung

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

Java Vererbung. Inhalt

Java Vererbung. Inhalt Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter

Mehr

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Februar 2017 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 13. März

Mehr

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 1 für Nebenfachstudierende Grundmodul Java Methoden Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel 3 - Java

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

Propädeutikum Programmierung in der Bioinformatik

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

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen

Mehr

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt Klassen und Objekte Klassen sind Vorlagen für Objekte. Objekte haben Attribute Konstruktoren Methoden Aus einer Klasse kann man beliebig viele Objekte herstellen. Attribute bestimmen die Eigenschaften

Mehr

4. Vererbung Die Klasse Object. Die Klasse Object

4. Vererbung Die Klasse Object. Die Klasse Object 4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige

Mehr

Klassenvariablen, Klassenmethoden

Klassenvariablen, Klassenmethoden Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden

Mehr

Tafelübung 07 Algorithmen und Datenstrukturen

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

Mehr

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

Grundlagen der Objektorientierten Programmierung - Methoden -

Grundlagen der Objektorientierten Programmierung - Methoden - Methoden In ihrem formalen Aufbau entsprechen Java-Methoden den Funktionen in C und C++. Eine Methode dient dazu, eine häufig benötigte Folge von Anweisungen unter einem Namen zusammenzufassen und zum

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

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches

Mehr

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

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

Mehr

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

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

Mehr

Probeklausur Java Einführung in die Informatik. Wintersemester 2014/2015

Probeklausur Java Einführung in die Informatik. Wintersemester 2014/2015 Fakultät IV NI & CV Probeklausur Java Einführung in die Informatik Wintersemester 2014/2015 Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen

Mehr

Erste Java-Programme (Java Wiederholung & Vererbung)

Erste Java-Programme (Java Wiederholung & Vererbung) Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Java Wiederholung & ) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/

Mehr

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

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

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

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

Mehr

Vorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3

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

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

Dies ist eine Probeklausur, die keine formalen Schlüsse auf die Form, die Struktur oder den Inhalt der endgültigen Klausur zulässt.

Dies ist eine Probeklausur, die keine formalen Schlüsse auf die Form, die Struktur oder den Inhalt der endgültigen Klausur zulässt. Thema: Grundlagen Programmierung Dozent: Prof. Dr. Stephan Kleuker Seitennummer: Seite 1 von 12 Studiengang: Informatik Technische Informatik Studiensemester: 1 Datum: 26.11.2018 Bearbeitungszeit: 120

Mehr

Programmieren in Java

Programmieren in Java Einführung in die (imperative) Programmierung: Methoden 2 Wiederholung: if-else Anweisung int number =?; if ( BEDINGUNG ) { if (number > 0) { SATZ; BLOCK System.out.println("Größer 0"); else { SATZ; BLOCK

Mehr

Konstruktor. public Rational(int i) { Zaehler = i; Nenner = 1; }

Konstruktor. public Rational(int i) { Zaehler = i; Nenner = 1; } Konstruktor spezielle Methode zum Initialisieren bei Erzeugen eines Objekts mit new trägt Namen der Klasse hat keinen Rückgabetyp keiner angegeben: Compiler erzeugt Standard-Konstruktor (analog: Attribute

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

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

1 Aufgaben 1.1 Objektorientiert: (extended-hamster) Sammel-Hamster 1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster Aufgabe: Bearbeitungszeit: ca. 1/4 Std) Schreiben Sie ein "objektorientiertes" Programm ("CuB_05_1") für das Sammeln der Körner. Aufgabenbeschreibung:

Mehr

Einführung in die Programmierung für NF. Übung

Einführung in die Programmierung für NF. Übung Einführung in die Programmierung für NF Übung 03 06.11.2013 Inhalt Methoden in Java Gültigkeitsbereiche EBNF Einführung in die Programmierung für NF Übung 03 2 Methoden in Java In Methoden werden Ausdrücke

Mehr

Name:... Matr.-Nr... Bearbeitungszeit: 120 Minuten

Name:... Matr.-Nr... Bearbeitungszeit: 120 Minuten Fakultät IV Elektrotechnik/Informatik Klausur Einführung in die Informatik II für Elektrotechniker Name:... Matr.-Nr.... Bearbeitungszeit: 10 Minuten Bewertung (bitte offenlassen : ) Aufgabe Punkte Erreichte

Mehr

Einführung in die Programmierung Blockkurs Java

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

Mehr

Vorkurs Informatik WiSe 16/17

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

Mehr

Programmieren in Java -Eingangstest-

Programmieren 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

Mehr

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

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

Mehr

2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article

2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article 2.13 Vererbung Klassen modellieren Objekte der realen Welt. Diese sind oft hierarchisch gegliedert. Beispiel: Ein Verlag bietet Bücher und CDs an. Beide Medien sind Artikel des Verlages. Book author: String

Mehr

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer Universität zu Lübeck Institut für Telematik Prof. Dr. Stefan Fischer Probeklausur im Fach Programmieren Hinweise zur Bearbeitung: Es sind keinerlei Hilfsmittel zugelassen. Diese Klausur umfasst 18 Seiten.

Mehr

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015 Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

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

Kleines Java-Glossar zum Praktikum Einführung in das Programmieren

Kleines Java-Glossar zum Praktikum Einführung in das Programmieren Kleines Java-Glossar zum Praktikum Einführung in das Programmieren Elmar Zander, Philipp Kuhn 15. Mai 2017 Die Erläuterungen in diesem Glossar sind extra einfach gehalten und sollen nur einen schnellen

Mehr

Praxis der Programmierung

Praxis der Programmierung Klassenvariablen und -methoden, Vererbung Institut für Informatik und Computational Science Henning Bordihn 1 Klassenvariablen und -methoden 2 Klassenvariablen und -methoden werden mit dem Schlüsselwort

Mehr

Klausur Grundlagen der Programmierung

Klausur Grundlagen der Programmierung Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel

Mehr

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Schlussendlich 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 -

Mehr

Probeklausur Java Einführung in die Informatik. Wintersemester 2017/2018

Probeklausur Java Einführung in die Informatik. Wintersemester 2017/2018 Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2017/2018 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung

Mehr

public static void main(string[] args) {

public static void main(string[] args) { Lösungen 55 Lösungen Aufgabe 1: Die Variable y enthält den Wert 1.0. Entsprechend den Prioritäten der beteiligten Operatoren / und = wird erst die Division und anschließend die Zuweisung durchgeführt.

Mehr

Software Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter

Software Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Rekursion Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 27 Motivation Beispiel: Fibonacci-Folge

Mehr

Java Grundlagen 2 - OOP

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

Mehr

Vorkurs Informatik WiSe 17/18

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

Mehr

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Teil 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

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

Tücken der dynamischen Bindung

Tücken der dynamischen Bindung Kapitel 3 Tücken der dynamischen Bindung 3.1 this-pointer Im Methodenaufruf o.m(x) ist o Bezugsobjekt wird als zusätzlicher Parameter übergeben: m(o,x) kann im Rumpf von m als this (bzw self) angesprochen

Mehr

Abgabe: keine Pflichtabgabe (vor 12 Uhr) Aufgabe 10.1 (P) Vererbung Gegeben seien folgende Java-Klassen:

Abgabe: 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,

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte

Mehr

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

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2007/2008 Praktikum Grundlagen der Programmierung Lösungsvorschläge zu Blatt 8 F. Forster, T.

Mehr

Fragenkatalog ESOP WS 16/17

Fragenkatalog ESOP WS 16/17 Fragenkatalog ESOP WS 16/17 1. Einleitung 1.1 Was ist Programmieren? 1.2 Was ist ein Programm? 1.3 Welche Schritte werden bei der Programmerstellung benötigt? 1.4 Was ist ein Algorithmus? 1.5 Was sind

Mehr

Programmiertechnik Übungen zu Klassen & -methoden

Programmiertechnik Übungen zu Klassen & -methoden Programmiertechnik Übungen zu Klassen & -methoden Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Übung 1 Ein Verfahren, den größten gemeinsamen Teiler (ggt) zweier Zahlen a und b, a

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java weitere Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung

Mehr

Programmierung WS17/18 Lösung - Präsenzübung 09./

Programmierung WS17/18 Lösung - Präsenzübung 09./ Prof. aa Dr. J. Giesl M. Hark, J. Hensel, D. Korzeniewski Aufgabe 1 (Programmanalyse): (11.5 + 4.5 = 16 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Tragen Sie hierzu jeweils

Mehr