Programmiervorkurs 2008

Größe: px
Ab Seite anzeigen:

Download "Programmiervorkurs 2008"

Transkript

1 Programmiervorkurs 2008 Es steht noch was aus Wir erinnern uns, jede Methode beginnt mit: public static Aber jetzt wollen wir endlich klären, was das eigentlich ist Fertig? Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 1 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 2 Mehrere Java Klassen Mehrere Java Klassen Wir kennen bisher nur Java Programme bestehend aus einer Datei Wie schaut es also aus wenn wir mehrere Dateien verwenden wollen? public class Eins { System.out.println("Hauptklasse!"); System.out.println(Zwei.methode()); Wir müssen zum compilieren nur diejenige Klasse compilieren, welche die main-methode enthält Java setzt Links zwischen den.class Dateien public class Zwei { public static String methode() { return "Und ich bin die 2. Klasse!"; :> javac Eins.java :> java Eins Hauptklasse! Und ich bin die 2. Klasse! Die zweite Klasse kann ganz normal mit Methoden gefüllt werden, die von der ersten Klasse aus aufgerufen werden können NAME_ZWEITE_KLASSE.methoden_name(PARAMETER_LISTE) public class Hauptprogramm { int add = MatheKlasse.add(2,4); int sub= MatheKlasse.sub(2,4); int by= MatheKlasse.by(2,4); Im Prinzip nichts anders als das, was wir schon können public class MatheKlasse { public static int add(int a, int b) { return a + b; public static int sub(int a, int b) { return a - b; public static int by(int a, int b) { return a * b; Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 3 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 4

2 Public vs. Private Und jetzt kommt noch das static Und was ist nun dieses public? public class Hauptklasse { Versteckklasse.run(); // nicht möglich: // Versteckklasse.doSomeWork(); public class Versteckklasse { public static void run() { dosomework(); private static void dosomework() { System.out.println( Unsichtbar von außen!"); Für das static brauchen wir aber ein bischen länger als für das public public bezeichnet, dass die Methoden oder Klassen von überall und von jedem benutzt werden dürfen Mit private werden Methoden nach außen hin versteckt Nur Methoden in der gleichen Klasse dürfen andere private Methoden benutzen Können auch Klassen private sein? Nein, hier gibt es noch andere Schlüsselwörter, aber nicht im Vorkurs Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 5 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 6 Konto Konto-Objekt mit eigenem Speicher Wir wollen eine Art Konto, z.b. ein Bankkonto, auf dass wir einzahlen und abheben können public class Konto { int konto = 0; konto += 100; konto -= 20; Das ist aber nicht schön, denn was macht man bei mehreren Konten? Mehrere Variablen für die Konten? Was mache ich wenn ich die Anzahl maximaler Konten nicht kenne? public class Bank { Konto k1 = new Konto(100); Konto k2 = new Konto(20); k1.einzahlen(50); k2.abheben(40); System.out.println(k1.guthaben()); System.out.println(k2.guthaben()); :> javac Test.java :> java Test public class Konto { private int konto; public Konto(int startguthaben) { konto = startguthaben; public void einzahlen(int betrag) { konto += betrag; public void abheben(int betrag) { konto -= betrag; public int guthaben() { return konto; Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 7 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 8

3 Was ist da passiert? Der Konstruktor Bauplan für ein Konto: eine Java Klasse erzeugen einer Instanz mit new Konto( ) public Konto(int startguthaben) { konto = startguthaben; reales Konto reales Konto reales Konto Jedes Konto hat eine eigene Variable für den Kontostand Mit new wird aus dem Bauplan ein Objekt instanziiert (= erzeugt) Jedes Objekt hat im Arbeitsspeicher einen eigenen Bereich für seine Variablen Warum gibt es hier kein static und keinen Rückgabetyp? Ein Konstruktor erzeugt ein Objekt, eine Instanz der Java- Klasse Ein Konstruktor ist keine Methode, da er in der Regel keine weiteren Funktionen beinhaltet, außer eben ein Objekt zu erzeugen Der Konstruktor Name muß identisch sein mit dem Java-Klassen Namen Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 9 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 10 Pascal studiert Architektur Daniel studiert Architektur Er hat den Plan für ein Haus im Kopf Aber in eine Idee kann man nicht einziehen Der Plan muß erst in die Realität umgesetzt werden Und wenn es sich bewährt vielleicht sogar mehrfach und nicht nur einmal Pascal entwirft ein Haus Bauunternehmen baut 10 Stück Bauplan Jedes Haus hat einen eigenen Stromzähler Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 11 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 12

4 Konto-Objekt mit eigenem Speicher Bekannte Klassen/Objekt Systeme Konto Objekt 1 Konto Objekt 2 public class Konto { private int konto; public Konto(int startguthaben) { konto = startguthaben; public void einzahlen(int betrag) { konto += betrag; public void abheben(int betrag) { konto -= betrag; public int guthaben() { return konto; public class Bank { Konto k1 = new Konto(100); Konto k2 = new Konto(20); k1.einzahlen(50); k2.abheben(40); System.out.println(k1.guthaben()); System.out.println(k2.guthaben()); Die Variablen konto haben den gleichen Namen, aber im Arbeitsspeicher existieren sie an verschiedenen Position, jede für sich. Und nicht nur die Variablen, das ganze Objekt ist doppelt da. Man könnte sagen, die Variablen heißen eigentlich: k1/konto und k2/konto public class Konto { private int konto; public Konto(int startguthaben) { konto = startguthaben; public void einzahlen(int betrag) { konto += betrag; public void abheben(int betrag) { konto -= betrag; public int guthaben() { return konto; Beispiele: int[] i = new int[]; Integer.valueOf( ).intvalue(); System.out.println( ); stringvariable.equals(stringvariable) stringvariable.charat(n) Wann muß ich ein Objekt anlegen und wann nicht? Objekt: Sobald ich einen internen Zustand verwalten muß kein Objekt: Sobald der Ablauf einer Methode von nichts abhängt (außer den übergebenen Parametern (z.b. Math.sqrt(double d) oder Math.PI) Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 13 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 14 Vorgefertigte Klassen Innere Klassen Java liefert uns in speziellen Packeten Klassen und darin implementierte Funktionen mit Problem: Wir wollen eine Zufallszahl erzeugen Klasse Random existiert schon auf unserem PC muß jedoch extra eingebunden werden Wir können uns von ihr ein Objekt erzeugen.nextint(int n) import java.util.random; liefert eine Zufallszahl zwischen public class Zufall { [0..n[ Random rand = new Random(); (also von einschließlich 0 bis ausschließlich n) System.out.println(rand.nextInt(3)); public class AuessereKlasse { InnereKlasse ik = new InnereKlasse(); ik.dosomework(); class InnereKlasse { public InnereKlasse() { public void dosomework() { In einer Datei! Innere Klassen können nur aus der eigenen Klassen-Datei heraus benutzt oder instanziiert werden Für exklusive Objekte oder Funktionen Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 15 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 16

5 Variablen und Methoden Call by Reference vs. Call by Value public class Calling { int i = 5; addoneandprint(i); System.out.println(i); Container c = new Container(2); changecontainer(c); System.out.println(c.getI()); public static void addoneandprint(int i) { i = i + 1; System.out.println(i); private static void changecontainer(container c) { c.seti(7); System.out.println(c.getI()); class Container { private int i; public Container(int i) { this.i = i; public int geti() { return i; public void seti(int i) { this.i = i; Ausgabe auf der Konsole: mit THIS unterscheidet man zwischen LOKALEN und GLOBALEN Variablen In Java gibt es zwei unterschiedliche Arten Variablen an Methoden zu übergeben Call by Value primitive Datentypen (int, char, String, boolean) werden als Kopie des ursprünglichen Werts an die Methode übergeben Änderungen an dieser übergebenen Variable haben keine Auswirkungen auf außen Objekte werden als Referenz an die Methode übergeben interne Änderungen am Objekt haben Auswirkungen nach außen Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 17 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 18 KarelJ Karels Welt Jetzt wollen wir mal richtig los legen, Objekte erstellen und damit etwas tun Streets KarelJ ist eine kleine Graphik-Bibliothek, die es erlaubt einen kleinen Roboter über eine Karte zu bewegen Karel kann außerdem Beeper ablegen und wieder aufnehmen Und in Karels Welt gibt es Wände Wall Beeper Sagt Hallo zu Karel! Avenues Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 19 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 20

6 Was kann Karel alles? Was kann Karel alles? Einen Schritt nach vorne gehen.move(); Sich nach links drehen. Einen Beeper aufsammeln/ablegen.pickbeeper();.putbeeper(); Feststellen ob er über einem Beeper steht.nexttoabeeper(); (boolean) Festellen ob er mindestens einen Beeper dabei hat.anybeepersinbeeperbag(); (boolean) Festellen ob er nach Norden/Süden/Westen/Osten schaut.facingnorth(); (boolean).facingsouth(); (boolean).facingwest(); (boolean).facingeast(); (boolean) Festellen ob er gegen eine Mauer schaut.frontisclear(); (boolean) Wir wenden das alles jetzt mal an, damit Ihr seht wie es funktioniert! Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 21 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 22 Karel in Aktion Objekt Konstruktor public class KarelAktion { World.setSize(6,8); World.setTrace(false); Robot r = new Robot(1, 2, 5, direction.north); r.putbeeper(); r. System.out.println("Wand: " + r.frontisclear()); Robot r = new Robot(avenue, street, beeper, looking); Wir erzeugen eine Variable vom Typ Robot mit Namen r Wir instanziieren ein Objekt vom Typ Robot und speichern es in die Variable r avenue: die x-koordinate street: die y-koordinate beeper: Anzahl Beeper im Rucksack looking: Richtung, in die Karel am Anfang schaut direction.north, direction.south, direction.east, direction.west Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 23 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 24

7 Karel in Aktion, aber wie? TurnRightRobot Wie compiliert man das jetzt? Ihr benötigt die Datei robots.jar von der Material-Seite Windows :> javac classpath robots.jar; KarelAktion.java :> java classpath robots.jar; KarelAktion Unix/Linux :> javac classpath ~/robots.jar:. KarelAktion.java :> java classpath ~/robots.jar:. KarelAktion Wir haben gesehen, dass sich Karel nach links drehen kann Aber nach rechts gibt es nicht, wäre aber schon praktisch Wir müssen diese Funktion selbst implementieren Wir schreiben eine neue TurnRightRobot-Klasse, die nach rechts drehen enthält und lassen diese TurnRightRobot-Klasse alle Eigenschaft von der Robot-Klasse erben Unten im Pool, wenn ihr die.bashrc und robots.jar ins home entpackt habt :> compilerobot KarelAktion.java :> runrobot KarelAktion Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 25 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 26 TurnRightRobot extends und super public class TurnRightRobot extends Robot { public TurnRightRobot(int arg0, int arg1, int arg2, direction arg3) { super(arg0, arg1, arg2, arg3); public void turnright() { TurnRightRobot r = new TurnRightRobot(2, 2, Integer.MAX_VALUE, direction.north); System.out.println("Ich kann mich jetzt rechts herum drehen..."); r.turnright(); In der Java Klasse TurnRightRobot wurde rechts Drehen mittels 3 mal links Drehen implementiert Aber in der ganze Klasse sind die bekannten Methoden move(), putbeeper() etc. nicht enthalten, warum? public class TurnRightRobot extends Robot super(arg0, arg1, arg2, arg3); Die Klasse TurnRightRobot extends (erweitert) die Klasse Robot d.h. dass die neue Klasse alle Methoden, globalen Variablen und sonstigen Eigenschaften von der Klasse Robot erbt Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 27 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 28

8 Vererbung TurnRightRobot public class TurnRightRobot extends Robot { public TurnRightRobot(int arg0, int arg1, int arg2, direction arg3) { super(arg0, arg1, arg2, arg3); public void turnright() { 3 mal links = 1 mal rechts extends importiert alle Eigenschaften von Robot super ruft den Konstruktor von Robot auf jedes 2-beinige Lebewesen hier im Baum ist ein Säugetier, da es die Eigenschaft geerbt hat TurnRightRobot r = new TurnRightRobot(2, 2, Integer.MAX_VALUE, direction.north); System.out.println("Ich kann mich jetzt rechts herum drehen..."); r.turnright();.turnright() auf einer Instanz von TRB steht absofort als Befehl zur Verfügung Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 29 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 30 Treppensteigen Treppensteigen public class TreppensteigerRobot extends TurnRightRobot { public TreppensteigerRobot(int arg0, int arg1, int arg2, direction arg3) { super(arg0, arg1, arg2, arg3); // Methode zum Treppe steigen TreppensteigerRobot r = new TreppensteigerRobot(2, 2, Integer.MAX_VALUE, direction.north); r.steigetreppe(5); public class TreppensteigerRobot extends TurnRightRobot { public TreppensteigerRobot(int arg0, int arg1, int arg2, direction arg3) { private void steigeeinestufe() { putbeeper(); move(); turnright(); move(); public void steigetreppe(int stufen) { for (int i = 0; i < stufen; i++) { this.steigeeinestufe(); Basisfunktionen in einer eigenen Methode; Code auslagern! Durch Codeauslagerung werden fast alle Methoden schön übersichtlich Aber funktioniert das auch? Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 31 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 32

9 Wie haben einen Fehler gemacht Zustandserhaltung DAS ist keine Treppe! Vor der 1. Stufe: Schlagwort: Zustandserhaltung! Was ist das? Bsp: Drucker Eurer Kommilitone druckt im Pool 500 Seiten Script aus Ihr wollt als nächstes drucken, aber das Papier ist aus. Ärgerlich! Euer Kommilitone hätte Papier nachfüllen sollen verlaßt einen Arbeitsplatz so, wie Ihr ihn vorgefunden habt, damit Eure Nachfolger keine Probleme haben Nach der 1.Stufe: Zustandserhaltung! Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 33 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 34 Treppensteigen korrigiert Jetzt wird s erst richtig lustig! public class TreppensteigerRobot extends TurnRightRobot { public TreppensteigerRobot(int arg0, int arg1, int arg2, direction arg3) { private void steigeeinestufe() { putbeeper(); move(); turnright(); move(); public void steigetreppe(int stufen) { for (int i = 0; i < stufen; i++) { this.steigeeinestufe(); Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 35 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 36

10 Jetzt wird s erst richtig lustig! BoingRobot Wir wollen ans Ziel: der Doppel-Beeper Laufregeln: Wir laufen bis wir vor einer Wand stehen Liegt ein Beeper unter uns, dann laufen wir nach rechts weiter Liegt kein Beeper unter uns, dann laufen wir nach links weiter public class BoingRobot extends TurnRightRobot { public BoingRobot(int arg0, int arg1, int arg2, direction arg3) { super(arg0, arg1, arg2, arg3); // go Methode World(); // Setup der Welt BoingRobot r = new BoingRobot(2, 1, 0, direction.north); r. Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 37 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 38 Die go-methode Die go-methode public void { Wir laufen gerade aus, wenn wir keine Wand im Sichtfeld haben -> move() sonst (Wir haben ein Wand gerade aus) -> Wenn wir auf einem Beeper stehen -> Stehen wir auf einem zweiten Beeper? -> Ende! sonst (Wir stehen nicht auf einem zweiten Beeper) -> turnright() sonst (Wir stehen auf keinem Beeper) -> turnleft() public void { if (this.frontisclear()) { this.move(); sonst (Wir haben ein Wand gerade aus) -> Wenn wir auf einem Beeper stehen -> Stehen wir auf einem zweiten Beeper? -> Ende! sonst (Wir stehen nicht auf einem zweiten Beeper) -> turnright() sonst (Wir stehen auf keinem Beeper) -> turnleft() Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 39 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 40

11 Die go-methode Die go-methode public void { if (this.frontisclear()) { this.move(); else { if (this.nexttoabeeper()) { this.pickbeeper(); Stehen wir auf einem zweiten Beeper? -> Ende! sonst (Wir stehen nicht auf einem zweiten Beeper) -> turnright() public void { if (this.frontisclear()) { this.move(); else { if (this.nexttoabeeper()) { this.pickbeeper(); if (this.nexttoabeeper()) { this.pickbeeper(); this.turnoff(); sonst (Wir stehen nicht auf einem zweiten Beeper) -> turnright() else { this. else { this. Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 41 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 42 Die go-methode Exceptions (Ausnahmen) public void { if (this.frontisclear()) { this.move(); else { if (this.nexttoabeeper()) { this.pickbeeper(); if (this.nexttoabeeper()) { this.pickbeeper(); this.turnoff(); else { this.turnright(); else { this. Rekursions-Anker Alle haben bestimmt schon mal sowas gesehen: public class AIOOBE { int[] ia = { 0, 1, 2, 3, 4 ; for (int i = 0; i < 6; i++) { System.out.println(i + " - " + ia[i]); produziert auf der Konsole: Exception in thread "main" java.lang.arrayindexoutofboundsexception: 5 at AIOOBE.main(AIOOBE.java:5) klar, denn wir versuchen auf ia[5] zu zugreifen, obwohl es ja nur von ia[0] bis ia[4] geht Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 43 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 44

12 Exceptions (2) Exceptions catchen Anderer Fall: Division durch 0 Exception in thread "main" java.lang.arithmeticexception: / by zero at AIOOBE.main(DivByZero.java:3) Es handelt sich um Laufzeitfehler, also Fehler, die nicht vom Compiler erkannt werden semantische Fehler des Programms Können wir solche Fehler bemerken, behandeln und dem Programm die Chance geben weiter zu laufen? Ja, natürlich!! Wenn eine Exception auftritt fangen und weiter machen als wenn nichts geschehen wäre public class DivByZeroByTwo { double r = Double.MIN_VALUE; try { r = 5 / 0; catch (ArithmeticException e) { System.out.println("Problem behoben!"); r = 1; finally { r = r * 2; System.out.println(r); Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 45 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 46 Exception Struktur Mensa!? allgemeine Struktur try { PROGRAMM CODE catch (EXCEPTION e1) { catch (EXCEPTION e2) { catch (EXCEPTION e3) { finally { Es können beliebig viele Exceptions nach einem Try- Block gefangen und behandelt werden Der Name einer Exception kann entweder aus der Fehlermeldung an sich abgelesen werden dann kann man beim ersten Auftreten des Fehlers AB DANN darauf reagieren oder man baut try-catch auf Verdacht ein Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 47 Programmiervorkurs WS 2009 Fachbereich Informatik TU Darmstadt 48

Programmiervorkurs SS 2011

Programmiervorkurs SS 2011 Programmiervorkurs SS 2011 Objekte und Vererbung Programmiervorkurs SS 2011 Wir erinnern uns an Montag public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World!");

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Teil II. Objektorientierte Programmierung und objektorientierter Entwurf

Teil II. Objektorientierte Programmierung und objektorientierter Entwurf Teil II Objektorientierte Programmierung und objektorientierter Entwurf 39 Kapitel 8 Robuste Programme durch Ausnahmebehandlung Ziele: Lernen, robuste Programme zu schreiben Ausnahmen als Objekte verstehen

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:

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

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des

Mehr

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero Exceptions Prof. Dr. Margarita Esponda SS 2012 1 Ausnahmen Eine Ausnahme (Exception) ist ein Fehler oder ein nicht geplantes Ereignis, das während der Ausführung eines Programms vorkommt und dessen normalen

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Java - Programmierung - Objektorientierte Programmierung 1

Java - Programmierung - Objektorientierte Programmierung 1 Java - Programmierung - Objektorientierte Programmierung 1 // Klassen und Objekte public class KlaObj public static void main(string args []) Klasse1 a; a = new Klasse1("heute", 47); Klasse1 b = new Klasse1

Mehr

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 28 Testklasse public class TestGirokonto { public static void main(string[] args) { // erzeuge neues Konto Girokonto einkonto = new Girokonto();

Mehr

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

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

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Fehler die bei der Programmerstellung passieren können teilweise vom Compiler erkannt werden

Fehler die bei der Programmerstellung passieren können teilweise vom Compiler erkannt werden Exceptions Fehler die bei der Programmerstellung passieren können teilweise vom Compiler erkannt werden int a; double b=10; a = 10 * b; System.out.println(a); Fehler die während der Programmausführung

Mehr

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel FB Physikalische Technik Musterlösungen Teil 4 Aufgabe 1 package teil4; import javax.swing.*; public class Ei { int haltung, ident; String

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

14. Tutorium zu Programmieren

14. Tutorium zu Programmieren 14. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2009 by IPD Snelting

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Ein Computerprogramm besteht aus Funktionen (Programmabschnitten, die etwas tun) und Variablen (Speicherplätzen für Informationen). Werden Funktionen aktiviert, verändern

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Arrays Fortgeschrittene Verwendung

Arrays Fortgeschrittene Verwendung Arrays Fortgeschrittene Verwendung Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Arrays: Wiederholung

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Kapitel 3 Das Projekt Bankkonto Seite 1

Kapitel 3 Das Projekt Bankkonto Seite 1 Kapitel 3 Das Projekt Bankkonto Seite 1 3 Das Projekt Bankkonto Nun wirst du dich etwas gründlicher mit dem Quelltext einer Klasse beschäftigen. Du lernst, wie zwei Objekte eine gemeinsame Aufgabe erledigen.

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Assoziation und Aggregation

Assoziation und Aggregation Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben

Mehr

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Arrays: Wiederholung Ein Array ist ein Tupel von Elementen gleichen

Mehr

Programmierung. Programme, Compiler, virtuelle Maschinen, Java

Programmierung. Programme, Compiler, virtuelle Maschinen, Java Programmierung Programme, Compiler, virtuelle Maschinen, Java Programme Ein Programm ist eine Folge von Anweisungen, die einem Computer sagen, was er tun soll tuwas.c for(int i=0; i=0; i

Mehr

Meeting C++ C++11 R-Value Referenzen

Meeting C++ C++11 R-Value Referenzen Meeting C++ Detlef Wilkening http://www.wilkening-online.de 09.11.2012 Inhalt Motivation L-Values und R-Values R-Value Referenzen Move Semantik std::move Funktionen mit R-Value-Referenz Parametern Fazit

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Kapitel 14. Systemarchitektur

Kapitel 14. Systemarchitektur 1 Kapitel 14 Ziele 2 Grundprinzipien der verstehen Schichtenarchitekturen kennenlernen Modelle und Programme mit Paketen strukturieren Eine Architektur für eine einfache Bankanwendung konstruieren Grundprinzipien

Mehr

Hochschule Niederrhein Grundlagen der Prof. Dr. Nitsche Fachbereich 03 Java Programmierung Bachelor Informatik SS 2015 Übung 1. Grundlagen von Java

Hochschule Niederrhein Grundlagen der Prof. Dr. Nitsche Fachbereich 03 Java Programmierung Bachelor Informatik SS 2015 Übung 1. Grundlagen von Java Grundlagen von Java Aufgabe 1: Typen und Zuweisungen in Java Welche der folgenden Java-Anweisungen sind fehlerhaft? Handelt es sich um einen Compiler- oder einen Laufzeitfehler? Anmerkung: Folgefehler

Mehr

Gierhardt. 1 import javakara. JavaKaraProgram ; 3 public class Playit1 extends JavaKaraProgram. 4 { // Anfang von Playit1. 6 void gehezumbaum ( ) 7 {

Gierhardt. 1 import javakara. JavaKaraProgram ; 3 public class Playit1 extends JavaKaraProgram. 4 { // Anfang von Playit1. 6 void gehezumbaum ( ) 7 { Informatik: Einführung in Java Gierhardt Play it again, Kara! (Lsg.) 1. Kara soll ein Kleeblatt finden, das sich in der gleichen Zeile (oder Spalte) befindet wie er selbst. Zwischen ihm und dem Kleeblatt

Mehr

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Ludwig-Maximilians-Universität München Institut für Informatik Programmierung und Softwaretechnik (PST) Prof. Wirsing 6. Mai 2009 1 Der Name Java

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

13. Tutorium zu Programmieren

13. Tutorium zu Programmieren 13. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2009 by IPD Snelting

Mehr

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13.1 Modellierung des Rucksackproblems 13.2 Lösung mit Greedy-Algorithmus 13.3 Lösung mit Backtracking 13.4 Lösung mit Dynamischer Programmierung

Mehr

Erste Schritte in Java

Erste Schritte in Java Erste Schritte in Java Im einführenden Kapitel haben wir die Grundbegriffe der imperativen Programmierung an einem Beispiel (Algorithmus von Euklid) kennengelernt. In diesem Kapitel sehen wir uns an einem

Mehr

Bachelor-Klausur im WiSe 2013 / 2014. Grundlagen der Informatik

Bachelor-Klausur im WiSe 2013 / 2014. Grundlagen der Informatik Fachhochschule Kaiserslautern FB Informatik und Mikrosystemtechnik Prof. Dr. M. Duque-Antón Bachelor-Klausur im WiSe 2013 / 2014 im Fach Grundlagen der Informatik Angewandte Informatik / Medieninformatik

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Programmieren - Vererbung & Polymorphie

Programmieren - Vererbung & Polymorphie Programmieren - Vererbung & Polymorphie Reiner Nitsch r.nitsch@fbi.h-da.de Vererbung - Was ist das? Vererbung ist ein wichtiges Konzept zur Unterstützung der Wiederverwendbarkeit, wenn auch nicht das Wichtigste.

Mehr

Java-Vorkurs 2015. Wintersemester 15/16

Java-Vorkurs 2015. Wintersemester 15/16 Java-Vorkurs 2015 Wintersemester 15/16 Herzlich Willkommen! package de.unistuttgart.47.01.javavorkurs; public class WelcomeErstis { public static void main(string[] args){ System.out.println( Herzlich

Mehr

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

// Zeigt den insgesamt einbezahlten Betrag auf der Bank. // Muss 1600 GE sein. System.out.println("Current Bank balance: " + b.

// Zeigt den insgesamt einbezahlten Betrag auf der Bank. // Muss 1600 GE sein. System.out.println(Current Bank balance:  + b. / Testtreiberklasse, welche das Bankensystem testet. Es werden neue Bankkonten angelegt und Geld deponiert, abgehoben und transferiert. public class Main { / Main Methode fuehrt bestimmte Testfaelle aus.

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Programmiervorkurs. Organisation: Steffen Gebert, Alexander Wolff. Tutoren: Jürgen Zöller, Jonathan Stoll. Wintersemester 2012/2013

Programmiervorkurs. Organisation: Steffen Gebert, Alexander Wolff. Tutoren: Jürgen Zöller, Jonathan Stoll. Wintersemester 2012/2013 Programmiervorkurs Wintersemester 2012/2013 Organisation: Steffen Gebert, Alexander Wolff Tutoren: Jürgen Zöller, Jonathan Stoll Kontakt (für Organisatorisches, Fehler auf Folien...): Steffen Gebert steffen.gebert@informatik.uni-wuerzburg.de

Mehr

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009 PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2008/2009 FB Informatik

Mehr

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und

Mehr

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11 EINI I Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 10/11 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

5. Threads, Serverprozesse und Benachrichtigungen

5. Threads, Serverprozesse und Benachrichtigungen 5. Threads, Serverprozesse und Benachrichtigungen Threads allgemein Threads in Android: Handler und Messages Services: Local, Remote, Binding Benachrichtigungen Entwicklung mobiler Anwendungen Europäische

Mehr

Grundlagen Programmierung

Grundlagen Programmierung 1. Aufgabe (Spielen mit Objekten) Gegeben sei der auch von der Veranstaltungsseite erhältliche Programmcode auf der rechten Seite, der im Detail zuerst nicht verstanden werden muss. a) Erzeugen Sie sich

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Inhalt: Version 1.7.5

Inhalt: Version 1.7.5 Inhalt: Objekte ohne Methoden Objekte mit einfachen Methoden Objekte und Methoden mit Parametern Objekte und Methoden mit Rückgabewert Objekte mit einem Array als Attribut Beziehungen zwischen Objekten

Mehr

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches

Mehr

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

TCP/IP Programmierung. C# TimeServer Java6 TimeClient TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7

Mehr

DAP2-Programmierpraktikum Einführung in C++ (Teil 1)

DAP2-Programmierpraktikum Einführung in C++ (Teil 1) DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume

Mehr

Erreichbarkeit von Klassenelementen. Daten verstecken und kapseln

Erreichbarkeit von Klassenelementen. Daten verstecken und kapseln Daten verstecken und kapseln Sichtbarkeitsmodifikatoren: public Klasse, Variable oder Methode überall sichtbar und damit auch überall benutztbar. private private-variable sind nur in den Methoden sichtbar,

Mehr

Ab jetzt: Java ohne Kara

Ab jetzt: Java ohne Kara Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen JavaKara -> Java Ablauf in JavaKara: 1. Programm schreiben 2. Kompilieren 3. Programm starten Ablauf in Java

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

5 Projekt Bankverwaltung

5 Projekt Bankverwaltung Kapitel 5 Bankverwaltung (Lösung) Seite 1/7 5 Projekt Bankverwaltung 5.1 Festlegen der Schnittstelle Bevor du mit der Programmierung beginnst, musst du dir einige Gedanken über die Schnittstelle zwischen

Mehr

1. Der Einstieg in Java

1. Der Einstieg in Java 1. Der Einstieg in Java Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen

Mehr

Objektorientierung Grundbegriffe

Objektorientierung Grundbegriffe Objektorientierung Grundbegriffe Um Java programmieren zu können, ist es wichtig, einige objektorientierte Grundkenntnisse zu besitzen, denn die Sprache setzt voll auf dem OO-Paradigma auf. 3.1 Klassen

Mehr

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept Testkonzept 1.Einführung Um die Zuverläsigkeit und die Qualität der Software und des gesamten Systems zu verbessern, sind Tests durchzuführen. Die Testreihe läst sich in drei Stufen einteilen, nülich Komponententest,

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2013/2014 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Kommunikations-Middleware Bietet höhere Kommunikations-Dienste

Mehr

Einführung in die Programmierung mit Java. Hörsaalübung

Einführung in die Programmierung mit Java. Hörsaalübung Einführung in die Programmierung mit Java Hörsaalübung Folie 1 Grundlagen der Objektorientierung Seit Anfang der Neunzigerjahre Standardmethode der Softwareentwicklung. Die OOP Objektorientierte Programmierung

Mehr

Vorlesung im Herbstwintersemester 2007. Autorisierte studentisch Lösungen zu Aufgabenblatt 2

Vorlesung im Herbstwintersemester 2007. Autorisierte studentisch Lösungen zu Aufgabenblatt 2 Praktische Informatik I Vorlesung im Herbstwintersemester 2007 Autorisierte studentisch Lösungen zu Aufgabenblatt 2 zusammengestellt von Iva Tsvetkova 9.10.2007 1.Präsenzaufgaben 1.1 Entwurf einer Verwaltung

Mehr

Alltagsnotizen eines Softwareentwicklers

Alltagsnotizen eines Softwareentwicklers Alltagsnotizen eines Softwareentwicklers Entkoppeln von Objekten durch Callbacks mit c++-interfaces oder boost.function und boost.bind Tags: c++, entkoppeln, objekt, oop, callback, boost.bind, boost.function,

Mehr

Informatik für Schüler, Foliensatz 23 Konstruktor, String-Methode und Heldenklassse

Informatik für Schüler, Foliensatz 23 Konstruktor, String-Methode und Heldenklassse rof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 25. Mai 2009 1/10 Informatik für Schüler, Foliensatz 23 Konstruktor, String-Methode und Heldenklassse Prof. G. Kemnitz Institut

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen Grundlagen der Programmierung Prof. H. Mössenböck 10. Klassen Motivation Wie würde man ein Datum speichern (z.b. 13. November 2004)? 3 Variablen int da; String month; int ear; Unbequem, wenn man mehrere

Mehr

Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004)

Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004) Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004) A Bearbeitungszeit: 120 Minuten NICHT MIT BLEISTIFT SCHREIBEN! Name: Vorname: Matrikelnummer: Nr Max Bewertung

Mehr

4 Vererbung, Polymorphie

4 Vererbung, Polymorphie 4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004

Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004 Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004 Name : Vorname : Matrikelnummer : Hauptfach : Nebenfach/Fachrichtung Hinweise : 1. Überprüfen

Mehr

Objektorientierte Programmierung OOP Programmieren mit Java

Objektorientierte Programmierung OOP Programmieren mit Java Aufgaben: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge Objektorientierte Programmierung OOP Programmieren mit Java 1. Installation von Java 2. Erstes Java Programm Hello World 3. Dreimal Hallo Olten 2

Mehr

Java programmieren: Konsolen-Programme

Java programmieren: Konsolen-Programme Java programmieren: Es war einmal vor langer Zeit in einer weit entfernten Galaxis ok, das ist etwas übertrieben. In den Anfängen der Personal Computer in den 1980er sahen Computer noch etwa so aus: Diese

Mehr

4. Objektorientierte Programmierung

4. Objektorientierte Programmierung 4. Objektorientierte Programmierung In Abschnitt 3 ging es um fundamentale Basiskonzepte von Java, wie es sie in jeder anderen gängigen Programmiersprache so oder so ähnlich auch gibt. In Abschnitt 4 nun

Mehr

Klassenattribute und -methoden, Vererbung

Klassenattribute und -methoden, Vererbung Klassenattribute und -methoden, Vererbung Michael Dienert 27. März 2002 1 Prüfungsaufgabe Anwendungsentwicklung Winter 2001 Die folgende Aufgabe stammt aus der Abschlussprüfung für Fachinformatiker Anwendungsentwicklung

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

C/C++ Library für Java by TgZero 03.03.2013

C/C++ Library für Java by TgZero 03.03.2013 C/C++ Library für Java by TgZero 03.03.2013 Inhaltsverzeichnis Intro...1 Das Problem bei den vorhandenen Libs...1 Die Bedingungen für eine Library...2 Eine Java-Klasse erstellen...2 Zugreifen auf Objekte,

Mehr