Kurzeinführung in Java für C++-Programmierer

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Kurzeinführung in Java für C++-Programmierer"

Transkript

1 c JOHANNES MAYER, SAI, UNIVERSITÄT ULM, JANUAR DOCENDO CUR ANDO SCIENDO U NIVERSITÄT ULM Kurzeinführung in Java für C++-Programmierer Johannes Mayer Universität Ulm Abteilung Angewandte Informationsverarbeitung

2 Eine südostasiatische Insel WAS IST EIGENTLICH JAVA? Ein (US-amerikanischer) umgangssprachlicher Ausdruck für starken, heißen Kaffee Eine Programmiersprache von Sun Microsystems Inc. WAS IST EIGENTLICH JAVA? 2

3 LITERATUR ➀ David Flanagan: Java Examples in a Nutshell, zweite Ausgabe, O Reilly, (Viele Beispiele zu allen möglichen Bereichen sehr zu emfehlen.) ➁ Patrick Niemeyer, Jonathan Knudsen: Learning Java, O Reilly, (Einführung in Java mit Beispielen gespickt) ➂ David Flanagan: Java in a Nutshell, dritte Augabe, O Reilly, (Nur, um sich einen vollständigen Überblick über die Sprache Java zu verschaffen bzw. nachzuschlagen.) ➃ David Flanagan: Java Foundation Classes in a Nutshell, O Reilly, (Analog zum vorigen Buch nur jetzt für AWT, Swing und Java 2D.) ➄ Mario Jeckle: Skript zur Vorlesung Java, WS 2000/2001. (Auf der Seite erhältlich.) LITERATUR 3

4 WEBSEITEN / COMPILER Alles rund um Java gibt s auf der Java-Homepage von Sun Microsystems: Download des Java 2 SDK 1.3.1: (Version ist die momentan stabile Version; Version 1.4 steht als Release Candidate zur Verfügung) Online-Handbücher und Tutorials zu Java: Online-Dokumentation der API des Java 2 SDK 1.3.1: Java 2 SDK 1.3 von IBM: (schneller JIT für Linux und Windows, nicht aber für Solaris) Sun s Forte for Java: Borland JBuilder 6 Personal: BlueJ: WEBSEITEN / COMPILER 4

5 GESCHICHTLICHES 1990 Mike Sheridan ist Initiator des Green Teams bei Sun Microsystems 1991 James Gosling beginnt seine Arbeit am Interpreter Oak (später in Java umbenannt) Patrick Naughton arbeitet am Aspen Grafik-System 1994 Van Hoff implementiert einen Java-Compiler in Java (Gosling implementierte den Compiler in C) 1995 Sun kündigt Java auf der SunWorld an Download im Internet JDK s: 1996 v 1.0, 1997 v 1.1, 1998 v 1.2, 2000 v 1.3, 2002 v 1.4 GESCHICHTLICHES 5

6 ALLGEMEINES Java ist rein objektorientierte Programmiersprache und nicht hybrid wie etwa C++ Entstanden (im Wesentlichen) aus C++ und Oberon Große Ähnlichkeit zu C/C++ Überschaubare Anzahl von Sprachmitteln im Gegensatz zu C++ Plattformunabhängig (wegen Interpretation von Bytecode) Sauberes Modulkonzept (wie in Oberon) Keine richtigen Zeiger (d. h. keine Zeigerumwandlungen und keine Zeigerarithmetik wie in Oberon) Automatische Speicherverwaltung ALLGEMEINES 6

7 ALLER ANFANG IST LEICHT ' ' % & Java kennt nur Klassen eine rein objektorientierte Sprache Minimales Programm muss also in Klasse eingebettet sein Datei sollte so wie die enthaltene Methode C/C++ Methode -Klasse heißen $#als Startpunkt für die Programmausführung wie in $#wird von dem Standardausgabe-Stream aufgerufen (rein objektorientiert) ALLER ANFANG 'IST LEICHT7

8 VON DER QUELLE BIS ZUR AUSFÜHRUNG Java Quelle (Hello.java) Java Bytecode (Hello.class) Just In Time Compiler (JIT) Java Compiler (javac) Java Virtual Machine (java) Java-Quellcode wird vom Compiler in maschinenunabhängigen Java-Bytecode übersetzt (Plattformunabhängigkeit) Java-Bytecode wird von virtueller Maschine (JVM) interpretiert Evtl. übersetzt ein in die JVM integrierter Just-In-Time-Compiler (JIT) Methoden vor ihrer ersten Ausführung ( Performance vergleichbar zu C/C++) VON DER QUELLE BIS ZUR AUSFÜHRUNG 8

9 COMPILATION UND AUSFÜHRUNG Compiler erzeugt aus die Klassendatei keine ausführbare Datei, sondern enthält Java-Bytecode JVM wird mittels aufgerufen Klassenname angeben beim Aufruf der JVM und nicht den Namen der Klassendatei COMPILATION UND AUSFÜHRUNG 9

10 dem Namen Methode TYPISCHE ANFÄNGERFEHLER Tippfehler bei der Eingabe des Klassennamens Exception gibt JVM sucht in einer auszuführenden Klasse eine öffentliche statische TYPISCHE ANFÄNGERFEHLER 10 $# signalisiert, dass es keine Klasse mit

11 PRIMITIVE DATENTYPEN Name des Typs Art des Typs Speicherplatzbedarf byte vorzeichenbehaftete ganze Zahl 1 Byte short vorzeichenbehaftete ganze Zahl 2 Bytes int vorzeichenbehaftete ganze Zahl 4 Bytes long vorzeichenbehaftete ganze Zahl 8 Bytes float reelle Zahl 4 Bytes double reelle Zahl 8 Bytes boolean boolescher Wert 1 Byte char Unicode-Zeichen 2 Bytes Genau spezifizierte Größe aller primitiven Datentypen auf allen Plattformen (im Gegensatz zu in C/C++) kann nicht von/in andere Typen konvertiert werden PRIMITIVE DATENTYPEN 11

12 KOMMANDOZEILEN-ARGUMENTE Parameter von $#enthält die Kommandozeilen-Argumente (im Gegensatz zu C/C++ steht das erste Argument bei Index 0) KOMMANDOZEILEN-ARGUMENTE 12

13 % % ist der Array-Typ mit String-Elementen Im Gegensatz zu C/C++ kann man in Java die Länge eines Arrays bestimmen ist eine Standard-Java-Klasse Mit dem Operator kann man Strings konkatenieren Zahlen werden im String-Kontext automatisch in Strings konvertiert KOMMANDOZEILEN-ARGUMENTE 13

14 STRINGS STRINGS 14

15 # % % ist eine Standard-Java-Klasse für Strings konstruiert bereits ein String-Objekt ( also ineffizient, da zwei String-Objekte konstruiert werden) Strings sind nicht veränderbar ( keine Kopie nötig) $ist STRINGS 15

16 ARRAYS Wegen der Annahme sehr fehleranfällig Array-Typen, wie z. B., sind Klassen ist dieses Programm noch ARRAYS 16

17 % KLASSEN UND OBJEKTE Mit und % % bzw. haben wir schon spezielle Klassen kennen gelernt Wir haben schon selbst Klassen geschrieben ( Von der Oberklasse abgeleitet entweder explizit oder implizit sind alle Klassen (zumindest indirekt),, ) Bei Klassen gibt es nur einfache Vererbung somit ist die Vererbungshierarchie in Java ein Baum für alle Klassen Alles was zur Klasse gehört, muss in der Klasse stehen (im Gegensatz zu Implementierungen und Initialisierungen außerhalb von Klassen wie bei C++) Objekte, d. h. Instanzen einer Klasse werden mit dem angewandt auf einen Konstruktor erzeugt -Operator Java besitzt eine automatische Speicherverwaltung, daher keinen -Operator KLASSEN UND OBJEKTE 17

18 Referenzen haben per Voreinstellung den Wert REFERENZEN Variablen vom Typ einer Klasse heißen Referenzen Referenzen sind ähnlich den Zeigern von Oberon Unterschiede zu C/C++: Keine Dereferenzierung notwendig und möglich Kein allgemeiner Zeigertyp wie etwain C/C++ Keine Typumwandlungen von Referenzen erlaubt Keine Zeigerarithmetik möglich Keine Referenzen auf primitive Datentypen Implizit erfolgt kein Aufruf eines Konstruktors (wie bei den Variablen vom Typ einer Klasse in C++) REFERENZEN 18

19 BEISPIEL: FIGUREN Schlüsselwort Klasse ist abstrakt, wenn sie mindestens eine abstrakte, d. h. mit dem deklarierte und nicht implementierte Methode besitzt Standardmäßig erfolgt dynamische Bindung bei allen (Objekt-)Methoden in Java (was bei C++ durch das Schlüsselwort explizit gefordert werden muss) ( Schlüsselwort ) Bei der Definition der Klasse ist keine Oberklasse angegeben, also ist sie implizit von Object abgeleitet Fehlt ein Konstruktor, so wir ein -Konstruktor ohne Parameter hinzugefügt, der als einzige Anweisung ebenfalls den parameterlosen Konstruktor der Oberklasse aufruft BEISPIEL: FIGUREN 19

20 BEISPIEL: FIGUREN 20

21 # ist von abgeleitet Konstruktor enthält als erste Zeile nicht den Aufruf $eines Konstruktors der Oberklasse $#wird als erste Zeile eingefügt ist Referenz auf das Objekt selbst Sichtbarkeit eines jeden Klassenelements wird durch die Angabe von etc. getrennt voneinander festgelegt Polymorphie: Einer Referenz können auch Objekte einer abgeleiteten Klasse zugewiesen werden BEISPIEL: FIGUREN 21

22 TYPENTEST UND TYPZUSICHERUNG TYPENTEST UND TYPZUSICHERUNG 22

23 Mit dem Operator kann man überprüfen, ob ein Objekt einen bestimmten Typ besitzt Durch den (...)-Operator kann dann schließlich zugesichert werden, dass es sich um ein Objekt vom angegebenen Typ handelt Typzusicherung schlägt fehl, falls das Objekt nicht vom angegebenen Typ ist ( Typzusicherung ist keine Typumwandlung ) TYPENTEST UND TYPZUSICHERUNG 23

24 AUSNAHMEN Zugriff auf Array-Elemente außerhalb des erlaubten Bereichs führt in AUSNAHMEN 24

25 Java automatisch zu einer Ausnahme ( & Ausnahmen sind in Java mit Objekten vom Typ parametrisiert Wird eine Ausnahme nicht abgefangen, so führt dies zu einem Stack-Trace, also der Ausgabe aller zur Zeit aktiven Methoden, und i. A. zum Abbruch des Programms ( nützlich bei der Fehlersuche) Erzeugen einer Ausnahme geht wie folgt: ) # & & # $ $ Abfangen einer Ausnahme geht wie in C++: AUSNAHMEN 25

26 EIN-/AUSGABE STREAMS, READER UND WRITER EIN-/AUSGABE STREAMS, READER UND WRITER 26

27 % & % & % & % % % % % Klassen zur Ein- und Ausgabe im Paket ist abstrakte Klasse zum zeichenweisen Lesen ( Unicode-Zeichen) führt Pufferung ein und ermöglicht somit das Lesen von ganzen Zeilen konkrete Klasse zum Lesen aus einer Datei konkrete Klasse zum Lesen aus einem String ist abstrakte Klasse zum byteweisen Lesen für komplizierteres Parsen der Eingabe Analog dazu gibt es für die Ausgabe die abstrakten Klassen und sowie die konkreten Klassen,,, etc., und sind Beispiele Geprüpfte Ausnahmen müssen entweder abgefangen oder bei der Methodendeklaration angegeben werden EIN-/AUSGABE STREAMS, READER UND WRITER 27

28 SCHNITTSTELLEN Eine Schnittstelle deklariert eine Menge von öffentlichen Methoden und Variablen, die eine implementierende Klasse besitzen muss (vgl. Definitions-Modul in Oberon) Keine Implementierung einer Methode in der Schnittstelle möglich Mehrfachvererbung im Zusammenhang mit Schnittstellen möglich: Schnittstelle kann von mehreren Schnittstellen erben Klasse kann mehrere Schnittstellen implementieren Schnittstellen sind genauso Typen wie es Klassen sind Ideales Information Hiding SCHNITTSTELLEN 28

29 SCHNITTSTELLEN 29

30 % % besitzt implizit die Oberklasse Außerdem implementiert % die Schnittstelle Zusweisung eines Student-Objekts also an Referenzen vom Typ, und möglich Typmehrfachvererbung also möglich SCHNITTSTELLEN 30

31 MODULKONZEPT MODULKONZEPT 31

32 MODULKONZEPT 32

33 Klassen und Schnittstellen sind die Module in Java Anordnung von Klassen und Schnittstellen in Unterverzeichnissen möglich (Pakete) Paketname am Anfang mit angeben Relativer Pfad vom jeweiligen Hauptverzeichnis entspricht (nach Ersetzung von / durch. ) dem Paketnamen Alle Klassen, Schnittstellen, Methoden und Variablen ohne eines der Schlüsselworte, und sind genau für alle Klassen und Schnittstellen aus dem selben Paket sichtbar (Paket-Sichtbarkeit) Import von Klassen und Schnittstellen aus anderen Paketen mittels MODULKONZEPT 33

34 PARAMETERÜBERGABE PARAMETERÜBERGABE 34

35 Nur Call by Value möglich in Java Objektzustand kann sich aber ändern, die Referenz nicht Simulation von Call by Reference : Variablen-Parameter in eine Klasse verpacken Wie in C++ gibt es in Java auch innere Klassen und zusätzlich auch innere Schnittstellen ( direkt zu einer Klasse gehörig) Innere Klassen können Bruch der Kapselung durch innere Klassen oder auch nicht sein PARAMETERÜBERGABE 35

36 VERGLEICH VON OBJEKTEN VERGLEICH VON OBJEKTEN 36

37 # # Mit dem Operator werden nur die Referenzen verglichen bei Referenzen auf verschiedene Objekte immer ungleich und Vergleich referenzieren unterschiedliche Objekte, also liefert der erste $ist eine von definierte Methode, die standardmäßig (wenn keine eigene Implementierung vorhanden ist) die Referenzen vergleicht Weil vom Typ $für alle Objekte funktionieren soll, ist der Parameter ( Typentest und Typzusicherung) VERGLEICH VON OBJEKTEN 37

38 $ verfügbar sind) gibt es die Schnittstelle # Im Paket expliziten, (vom dem alle Klassen und Schnittstellen ohne die nur folgende Methodendeklaration enthält: Evtl. Sonst: kleiner, bei unvergleichbarem Objekt gleich und größer VERGLEICH VON OBJEKTEN 38

39 VERGLEICH VON OBJEKTEN 39

40 generische Sortieralgorithmen sind auf diese Art möglich (Java kennt momentan noch keine Templates im Gegensatz zu C++) Bei Zuweisungen von Referenzen wird nicht das Objekt, sondern nur die Referenz (also der Zeiger ) kopiert Ein Array ist ein Objekt daher ist die Vertauschung der Elemente trotz Call by Value möglich VERGLEICH VON OBJEKTEN 40

41 KOPIEN VON OBJEKTEN ERZEUGEN KOPIEN VON OBJEKTEN ERZEUGEN 41

42 % Zuweisung von Referenzen erzeugt noch keine Kopie Methode $#vonerzeugt eine byteweise Kopie mit demselben dynamischen Typ ( keinen Konstruktor verwenden) Bei Aggregation werden nur die Referenzen und nicht die Objekte bei einer byteweisen Kopie dupliziert ( $#ist aber nicht implementiert wird Die Schnittstelle Paket $#überschreiben) und löst eine aus, wenn die Schnittstelle aus dem automatisch importierten enthält keine Methodendeklaration ( Marker Interface ) KOPIEN VON OBJEKTEN ERZEUGEN 42

43 STRINGREPRÄSENTATION STRINGREPRÄSENTATION 43

44 % $# % % Von wird die Methode $#geerbt Referenz im Stringkontext führt zur Anwendung der Methode Überschreiben der Methode bestimmen Interessant für Fehlersuche $#, um die Form der Ausgabe zu STRINGREPRÄSENTATION 44

45 THREADS THREADS 45

46 # Threads sind leichtgewichtige Prozesse, d. h. Threads teilen sich den Adressraum Laufen parallel (keine explizite Kooperation wie etwa bei Koroutinen in Oberon) Thread-Ausführung wird mit der Methode Mittels Ausführung der Methode $#des Threads $#gestartet $schlafender Thread kann durch eine unterbrochen werden Beide Threads sind Beispiele für Objekte anonymer Klassen THREADS 46

47 SYNCHRONISATION VON THREADS SYNCHRONISATION VON THREADS 47

48 SYNCHRONISATION VON THREADS 48

49 & & & Java stellt Sprachmittel zur Synchronisation von Threads bereit Zwei -Anweisungsblöcke, bei denen dasselbe zu synchronisierende Objekt angegeben ist, können nie gleichzeitig aktiv sein (gegenseitiger Ausschluss bzw. Mutual Exclusion ) Zusätzlich zu -Anweisungsblöcken kann auch eine Methode mit dem Schlüsselwort synchronized deklariert werden implizites Einschließen aller Aufrufe dieser Methode in einen -Block parametrisiert mit dem Objekt, auf dem die Methode ausgeführt werden soll Bei mehr als einer zu synchronisierenden Resource kann es zu Verklemmungen kommen ( Deadlocks ) Alle in anonymen Klassen von außerhalb verwendeten Variablen müssen mit Hilfe des Schlüsselwortes final als konstant deklariert werden (Referenz ist konstant, Objektzustand, d. h. die Werte seiner Variablen, nicht) SYNCHRONISATION VON THREADS 49

50 CONTAINER-KLASSEN DES JAVA-API CONTAINER-KLASSEN DES JAVA-API 50

51 % % ist eine Container-Klasse aus der Java Bibliothek, die dynamisch wachsende Arrays implementiert Verwendung auch als Liste möglich (z. B. Methode Elemente von Templates kennt besitzen den Typ Queues bzw. doppelt verkettete Listen: Stacks: Mengen: Assoziative Arrays: $#), da Java keine CONTAINER-KLASSEN DES JAVA-API 51

52 GUI-PROGRAMMIERUNG MIT JAVA-SWING GUI-PROGRAMMIERUNG MIT JAVA-SWING 52

53 # % # $ Java-GUI-Programme auf Turing ausführen (wegen der installierten JDK-Version) Swing und AWT sind die GUI-Bibliotheken der Java Foundation Classes (Swing ist aktueller) ist ein Fenster Reaktion auf Schließen des Fensters durch Installation eines eigenen s Hinzufügen eines Textfeldes ( Entweder Größe mittels ermitteln lassen ( $#) Schließlich Fenster mittels ) mittels $#setzen oder benötigte Größe $anzeigen GUI-PROGRAMMIERUNG MIT JAVA-SWING 53

54 ZUSAMMENFASSUNG: C++ VS. JAVA C++ Java übersetzt plattformabhängig hybrid objektorientiert schnelle Ausführung Präprozessor interpretiert (evtl. JIT) plattformunabhängig echt objektorientiert mit gutem JIT nur etwa ein Drittel langsamer (anwendungsabhängig) echtes Modulkonzept Templates noch nicht für Java SDK 1.5 geplant Mehrfachvererbung bei Klassen ZUSAMMENFASSUNG: C++ VS. JAVA 54

55 C++ Java Schnittstellen und dadurch volles Information Hiding und Typ-Mehrfachvererbung unsichere Zeiger leicht Speicherlecks möglich Überladen von Operatoren typsichere Zeiger automatische Speicherverwaltung anonyme Klassen große Standardbibliothek Persistenz integriert Threads mit Synchronisation ZUSAMMENFASSUNG: C++ VS. JAVA 55

56 C++ Java Reflection automatische erzeugte HTML- Dokumentation (javadoc) ZUSAMMENFASSUNG: C++ VS. JAVA 56

4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen

4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen 4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen Highlights: objektorientierte Sprache Plattformunabhängigkeit bei Hardware und Betriebssystem optimale Einbindung im Internet und Intranet

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

Java für C++ Programmierer

Java für C++ Programmierer Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?

Mehr

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

J.5 Die Java Virtual Machine

J.5 Die Java Virtual Machine Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class

Mehr

Objektorientierte Programmierung in Java

Objektorientierte Programmierung in Java Objektorientierte Programmierung in Java 1. Auflage Objektorientierte Programmierung in Java schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag C.H. Beck im Internet:

Mehr

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

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

Dynamische Sprachen auf der JVM

Dynamische Sprachen auf der JVM Dynamische Sprachen auf der JVM Christian Müller Leibniz Universität Hannover 1 Einführung Der Begriff dynamische Sprache ist nicht genau definiert, sehr oft wird er lediglich mit dynamischer Typprüfung

Mehr

Abschnitt 9: Schnittstellen: Interfaces

Abschnitt 9: Schnittstellen: Interfaces Abschnitt 9: Schnittstellen: Interfaces 9. Schnittstellen: Interfaces 9.1 Die Idee der Schnittstellen 9.2 Schnittstellen in Java 9.3 Marker-Interfaces 9.4 Interfaces und Hilfsklassen 9.5 Zusammenfassung

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Klassenbeziehungen & Vererbung

Klassenbeziehungen & Vererbung Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in

Mehr

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer) Programmieren I Grundlagen von JAVA Dr. Klaus Höppner Hello World in JAVA Hochschule Darmstadt WS 2007/2008 Elementare Datentypen 1 / 17 2 / 17 Eigenschaften von JAVA Prinzipieller Ablauf Plattform-und

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

Das Einsteigerseminar Objektorientierte Programmierung in Java

Das Einsteigerseminar Objektorientierte Programmierung in Java Alexander Niemann Das Einsteigerseminar Objektorientierte Programmierung in Java -H-H Inhalt Vorwort 13 Einleitung 15 1 Java 21 1.1 Die Geschichte von Java 22 1.2 Das Konzept 24 Klassisch - Compiler und

Mehr

Java: Eine Übersicht. Dennis Giffhorn. Lehrstuhl für Programmierparadigmen Universität Karlsruhe

Java: Eine Übersicht. Dennis Giffhorn. Lehrstuhl für Programmierparadigmen Universität Karlsruhe Java: Eine Übersicht Dennis Giffhorn Lehrstuhl für Programmierparadigmen Universität Karlsruhe Allgemeines Objektorientiert Syntaxfamilie von C/C++ Statisch getypt Entwickelt von Sun Microsystems class

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

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

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen

Mehr

Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp

Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden mitp Inhaltsverzeichnis Einleitung 19 Grundlagen 21 Entwicklung und Eigenschaften von C++ 22 Objektorientierte Programmierung 24 Erstellen

Mehr

Kapitel 6. Vererbung

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

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 8 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Vererbung Vererbung Statischer Typ Dynamischer Typ 2 Polymorphie Overloading: Methoden überladen Overriding:

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Liste Programmieren Java Überblick

Liste Programmieren Java Überblick Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 3 Vererbung 4 Schnittstellen 5 Innere Klassen 6 Exceptions 7 Funktionsbibliothek 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe

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

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ IBBB 2010 Workshop 6 Einführung in die objektorientierte Programmierung Dozenten: J. Penon, J. Frank, A. Schindler Teil: Java mit BlueJ Dozent: A. Schindler Einf. i. d. OOP - Java u. BlueJ / A. Schindler

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 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

II.1.1. Erste Schritte - 1 -

II.1.1. Erste Schritte - 1 - ! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1

Mehr

Datenbankanwendungsprogrammierung Crashkurs Java

Datenbankanwendungsprogrammierung Crashkurs Java Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

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

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

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich 13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,

Mehr

Methoden und Wrapperklassen

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

Mehr

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

Roberto lerusalimschy. Programmieren mit Lua

Roberto lerusalimschy. Programmieren mit Lua Roberto lerusalimschy Programmieren mit Lua \ Vorwort 13 1 Die Sprache 21 1 Einführung/ 23 1.1 Chunks 24 1.2 Einige lexikalische Konventionen 26 1.3 Globale Variablen 27 1.4 DerStand-alone-Interpreter

Mehr

Javakurs zu Informatik I. Henning Heitkötter

Javakurs zu Informatik I. Henning Heitkötter Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,

Mehr

1. Java Grundbegriffe

1. Java Grundbegriffe 1. Java Grundbegriffe Geschichte von Java Programmieren mit Java Interpretieren vs. Kompilieren Java Byte-Code Jave Virtual Machine Arbeitsmaterialien Allgemeine Informatik 2 SS09 Folie 1.1 Java, eine

Mehr

5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu!

5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! 5.4 Arrays Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! Feld: Index: 17 3-2 9 0 1 0 1 2 3 4 5 Harald Räcke 114/656

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90

Mehr

Kapitel 2. Java: Der Einstieg. 2.1 Grundlegendes zu Java. 2.1.1 Historisches. 2.1.2 Eigenschaften von Java

Kapitel 2. Java: Der Einstieg. 2.1 Grundlegendes zu Java. 2.1.1 Historisches. 2.1.2 Eigenschaften von Java Kapitel 2 Java: Der Einstieg Im vorigen Kapitel haben wir die Syntax der Sprache Mini-Java kennengelernt. Bevor wir in Kapitel 3 ausführlich auf Syntax und Semantik der Programmiersprache Java eingehen

Mehr

Objektorientierte Programmierung in Java

Objektorientierte Programmierung in Java Objektorientierte Programmierung in Java 1. Auflage Taschenbuch. Paperback ISBN 978 3 8266 7414 3 Weitere Fachgebiete > EDV, Informatik > Programmiersprachen: Methoden > Prozedurorientierte Programmierung

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

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

Programmieren I. Kapitel 15. Ein und Ausgabe

Programmieren I. Kapitel 15. Ein und Ausgabe Programmieren I Kapitel 15. Ein und Ausgabe Kapitel 15: Ein und Ausgabe Ziel: einen kleinen Einblick in die vielfältigen IO Klassen geben Grober Überblick Klasse File zur Verwaltung von Dateien Random

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

JAVA. Ein kurzer Überblick. Thomas Karp

JAVA. Ein kurzer Überblick. Thomas Karp JAVA Ein kurzer Überblick Thomas Karp WAS IST JAVA? Java ist eine fast rein objektorientierte Sprache nicht JavaScript eine professionelle Sprache eine im Unterricht weit verbreitete Sprache für verschiedene

Mehr

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1 Kapitel 1 Einstieg in Java Dr. Elham Firouzi 06.09.10 1 1 : Einstieg in Java Einleitung Ein erstes Beispiel Berner Fachhochschule Entwicklung von Java-Programmen Applikationen Applets Vor und Nachteile

Mehr

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003 Test zu Grundlagen der Programmierung Leitung: Michael Hahsler 1. November 00 Name Martrikelnummer Unterschrift Bitte kreuzen Sie das Studium an, für das Sie diese Prüfung ablegen: O Bakkalaureat Wirtschaftsinformatik

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

3 Objektorientierte Konzepte in Java

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

Mehr

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv Alexander Niemann Das Einsteigerseminar Objektorientierte Programmierung in Java G bhv Inhaltsverzeichnis Vorwort 11 Einleitung 13 Lernen - Üben 13 Über dieses Buch 14 Ш11ШШШШ '. ш Ш Java 19 Die Geschichte

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

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

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung K05 Vererbung & Polymorphie in C++ 1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung 2 Vererbung in C++: Grundlagen Analog zu Java unterstützt C++ das Konzept der Vererbung:

Mehr

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3. Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

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

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

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

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

Mehr

FHZ. K20 Arrays. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt

FHZ. K20 Arrays. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt Inhalt 1. Einführung 2. Array-Komponenten von elementaren Datentypen 3. Array-Komponenten sind Objekte 4. Array als Parameter 5. Kopieren von Arrays 6. Beispiel 7. Vector versus Array Folie 1 Lernziele

Mehr

Folge 18 - Vererbung

Folge 18 - Vererbung Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,

Mehr

620.900 Propädeutikum zur Programmierung

620.900 Propädeutikum zur Programmierung 620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Arrays Wiederholung (1/5) Array = GEORDNETE

Mehr

Liste Programmieren Java Überblick

Liste Programmieren Java Überblick Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 3 Vererbung 4 Schnittstellen 5 Innere Klassen 6 Exceptions 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe 10 Threads 11 GUI-Programmierung

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests. Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

(allgemeine) OOP in C++ Klassen und header-files Konstruktorn / Destruktoren Speicherverwaltung C++ Standard Library / SLT

(allgemeine) OOP in C++ Klassen und header-files Konstruktorn / Destruktoren Speicherverwaltung C++ Standard Library / SLT Architektur Übersicht (allgemeine) OOP in C++ Polymorphie Virtuelle Funktionen Kompilieren Linken dynamische/statische Bibliotheken Tutorial: vs2008+ogre+(campus modell) Architektur (allgemeine) OOP in

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

Java Generics & Collections

Java Generics & Collections Java Praktikum Effizientes Programmieren (Sommersemester 2015) Dennis Reuling Agenda 1 2 3 1 / 30 Praktikum Effizientes Programmieren (Sommersemester 2015) Java Subtyping Teil 1 2 / 30 Praktikum Effizientes

Mehr

Szenario 3: Service mit erweiterter Schnittstelle

Szenario 3: Service mit erweiterter Schnittstelle 2. Hintergrundverarbeitung in Android: Services und Notifications Szenarien für lokale Services Szenario 3: Service mit erweiterter Schnittstelle Ein Service bietet zusätzliche Methoden an, über die sich

Mehr

Inhaltsverzeichnis 1 Der objektorientierte Ansatz 2 Elementare Objekte und Ausdrücke

Inhaltsverzeichnis 1 Der objektorientierte Ansatz 2 Elementare Objekte und Ausdrücke Inhaltsverzeichnis 1 Der objektorientierte Ansatz... 1 1.1 Ein einführendes Beispiel...2 1.1.1 Aktive Objekte...4 1.1.2 Klassifikation...4 1.1.3 Datenkapselung...6 1.2 OOP im Überblick...6 1.3 Programmaufbau...7

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

Institut für Programmierung und Reaktive Systeme 26. April 2013. Programmieren II. 10. Übungsblatt

Institut für Programmierung und Reaktive Systeme 26. April 2013. Programmieren II. 10. Übungsblatt Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 26. April 2013 Programmieren II 10. Übungsblatt Hinweis: Insgesamt werden in diesem Semester fünf

Mehr

Die Programmiersprache C99: Zusammenfassung

Die Programmiersprache C99: Zusammenfassung Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach

Mehr

Empfehlenswerte Literatur

Empfehlenswerte Literatur Empfehlenswerte Literatur 1 Flanagan, David: Java in a Nutshell, O Reilly, UK, 2002 (50 ) Online Referenzen unter http://www.wi3.uni-erlangen.de/lehre/ http://java.sun.com http://www.javaworld.com/ Online

Mehr

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

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

Mehr

Kompilieren und Linken

Kompilieren und Linken Kapitel 2 Kompilieren und Linken Bevor wir uns auf C++ selbst stürzen, brauchen wir einiges Vorgeplänkel, wie man komfortabel ein größeres C++- kompilieren kann. Mit Java stellt sich der Kompiliervorgang

Mehr

Alexander Niemann. Das Einsteigerseminar" < Objektorientierte ^ Programmierung in Java. bhv. i.-

Alexander Niemann. Das Einsteigerseminar < Objektorientierte ^ Programmierung in Java. bhv. i.- Alexander Niemann Das Einsteigerseminar" < Objektorientierte ^ Programmierung in Java i.- bhv Vorwort 11 Einleitung 13 Lernen - Üben 13 Über dieses Buch 14 Teil \ LöRTEn ;...-.,-......Al f Java 19 Die

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90 Minuten.

Mehr

Informatik II Übung 05. Benjamin Hepp 3 April 2017

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

Mehr

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick Vorlesung Objektorientierte Softwareentwicklung Sommersemester este 2008 Kapitel 0. Java-Überblick Was sind die Ziele? Warum Java? Komplexe Anwendungen e-business verteilt zuverlässig sicher mobil persistent

Mehr

Effiziente Java Programmierung

Effiziente Java Programmierung Effiziente Java Programmierung Seminar Implementierung moderner virtueller Maschinen am Beispiel von Java SS 2009 von Reinhard Klaus Losse 20. Mai 2009 Gliederung Definition Effizienz Werkzeuge zum Messen

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

Programmierung und Angewandte Mathematik

Programmierung und Angewandte Mathematik Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden

Mehr

Inhaltsverzeichnis. Vorwort...XIII. Aufbau des Buches...

Inhaltsverzeichnis. Vorwort...XIII. Aufbau des Buches... Inhaltsverzeichnis Vorwort...XIII Aufbau des Buches............................................... XV 1 Von der Idee zur Software..................................... 1 1.1 Beispielanwendung... 1 1.2 Schritte

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr