Inhalt. Objektorientierte Programmierung in Java, Mark Giereth Motivation. Teil 3. Grundlagen der Objektorientierung

Größe: px
Ab Seite anzeigen:

Download "Inhalt. Objektorientierte Programmierung in Java, Mark Giereth 29.01.2004. Motivation. Teil 3. Grundlagen der Objektorientierung"

Transkript

1 Inhalt Objektorientierte Programmierung in Java Mark Giereth Teil 1. Teil 2. Teil 3. Grundlagen der Objektorientierung Einführung in Java Beispiel: Entwicklung eines kleinen Web-Browsers und Eclipse-Demo 2 Motivation Teil 1: Grundlagen der Objektorientierung Datenorientierte Sichtweise: Gruppierung von Daten zu komplexen Typen Definition von Operationen, die Daten verarbeiten Daten vor inkonsistenten Veränderungen schützen, indem Zugriff auf die Daten Beschränkt wird Wiederverwendung von Code Einfachere Anpassbarkeit von Code Bessere Wartbarkeit Die Wartung von Softwaresystemen nimmt den größten Teil des Lebenszyklus ein und ist daher besonders kostenintensiv Objektorientierte Systeme ermöglichen einen strukturierteren Systementwurf 3 4

2 Objekte (Software-)Objekte besitzen einen internen Zustand und haben ein festgelegtes Verhalten Ein Objekt verwaltet seinen Zustand durch Variablen, Attribute genannt implementiert sein Verhalten durch Funktionen, Methoden genannt Methoden (Verhalten) Attribute (Zustand) Klassen und Instanzen Klassen sind Vorlagen für die Erzeugung von Objekten Jedes Objekt gehört einer Klasse an Die Attribute und Methoden der Objekte werden in der zugehörigen Klasse definiert Die Klasse legt den Typ eines Objekts fest Alle Objekte einer Klasse besitzen dasselbe Verhalten, da sie dieselbe Implementierung der Methoden besitzen Objekte einer Klasse werden auch als Instanzen (instance) oder Exemplare bezeichnet Klassen können auch Methoden und Attribute besitzen, die für die Klasse selbst und nicht für jede Instanz gelten. Diese werden als Klassen-Methoden/-Attribute bezeichnet (im Gegensatz zu Instanz-Methoden/-Attribute) 5 6 Instantiierung Beispiel Die Erzeugung von Objekten wird Instantiierung (instantiation) genannt Es wird Speicherplatz für das Objekt auf dem Heap allokiert (abhängig von den Datentypen der Attribute) Bei der Instantiierung wird ein Konstruktor (spezielle Methode) ausgeführt, der die Initialisierung des Objekts vornimmt Es werden den Attributen Werte zugeordnet, wodurch der Zustand des Objekts definiert wird entweder definiert durch den Konstruktor oder Default-Werte (0 für Zahlen, null für Referenzen, etc.) Die Instantiierung eines Objekts erfolgt mit dem new-operator Klasse setze y lese y zeichne Figur berechne Fläche Geometrische Figur Position y = 10 Position x = 20 Instanz 1 Position y Position x lese x setze x Position y = -11 Position x = 30 Figur 1 Instanz 2 Figur 2 7 8

3 UML Notation Die Unified Modeling Language (UML) ist eine Notation zur Spezifikation und Visualisierung von Modellen für Softwaresysteme In den folgenden Folien werden Klassendiagramme zur Beschreibung von Klassen und deren Beziehungen untereinander verwendet x:int y:int () setx(x:int):int sety(y:int):int getx():int gety():int getarea():float drawfigure():void Klassenname Attribute Methoden und Konstruktoren 9 setze y lese y zeichne Figur berechne Fläche Geometrische Figur Position y Position x lese x setze x Vererbung Vererbung (inheritance) ist ein Konzept, wodurch Attribute und Methoden der Oberklasse auch den Unterklassen zugänglich gemacht werden Vererbungsbeziehungen zwischen Klassen stellen Generalisierungs- bzw. Spezialisierungsbeziehungen dar Unterklassen/ Subklassen Oberklasse/ Superklasse Rectangle Circle Vererbungsbeziehung als nichtausgefüllter Pfeil von der Unter- zur Oberklasse 10 Vererbung Vererbung x:int y:int () setx(x:int):int sety(y:int):int getx():int gety():int getarea():float drawfigure():void Rectangle width:int height:int Rectangle() setwidth(x:int):int setheight(y:int):int getwidth():int getheight():int Circle radius:int Circle() setradius(x:int):int getradius():int Hat eine Methode einer Subklasse die gleiche Signatur einer Methode der Superklasse, so wird die Superklassenmethode überschrieben (overriding) Gibt es mehrere Methoden mit demselben Namen aber mit unterschiedlichen Signaturen, so spricht man von Überladen (overloading) Aber: Methoden müssen denselben Rückgabewert haben! Ein Objekt einer Unterklasse (z.b. Rechteck, Kreis) kann auch einer Variablen vom Typ der Oberklasse (z.b. GeomFirgure) zugewiesen werden (upcasting) 11 12

4 Abstrakte Klassen und Interfaces Abstrakte Klassen sind Klassen, die mindestens eine abstrakte Methode haben Abstrakte Methoden besitzen keine Implementierung. Von abstrakten Klassen können keine Instanzen erzeugt werden Unterklassen müssen entweder die abstrakten Methoden implementieren oder sind ebenfalls abstrakt Interfaces sind abstrakte Klassen, die nur aus abstrakten Methoden bestehen. Sie repräsentieren eine definierte Schnittstelle als eine Menge von welche die jeweilige Klasse implementieren muss Methoden. 13 x:int y:int {abstract () setx(x:int):int sety(y:int):int getx():int gety():int getarea():float {abstract drawfigure():void {abstract Da für getarea() und drawfigure() keine sinnvolle Implementierung möglich ist, werden diese Methoden als abstract gekennzeichnet und müssen von allen nicht abstrakten Unterklassen implementiert werden. Abstrakte Klassen Rectangle width:int height:int Rectangle() setwidth(x:int):int setheight(y:int):int getwidth():int getheight():int getarea():float drawfigure():void radius:int Circle Circle() setradius(x:int):int getradius():int getarea():float drawfigure():void 14 Zusammenfassung Objekte besitzen Attribute und Methoden gehören einer Klasse an Klassen legen Methoden und Attribute der Objekte fest können Klassen-Methoden/-Attribute besitzen können abstrakt sein Instantiierung Objekte werden auf dem Heap erzeugt den Attributen werden Werte zugeordnet Konstruktoren werden ausgeführt Vererbung Attribute und Methoden der Oberklasse werden den Unterklassen zugänglich gemacht Interfaces Teil 2: Einführung in Java 15 16

5 Eigenschaften von Java (1) Eigenschaften von Java (2) Java ist plattformunabhängig Java-Code wird mit einem Java-Compiler (javac) in plattformunabhängigen Bytecode überführt Bytecode wird von einer Java Virtual Machine (JVM) teils interpretiert teils zur Laufzeit in Maschinencode kompiliert (Just- In-Time-Compiler in JVM integriert) Für jede unterstützte Plattform muss es eine JVM geben Source Compiler Bytecode JVM Solaris JVM Windows JVM Linux Java wurde auf Sicherheit und Robustheit hin entwickelt: Fehleranfällige Sprachkonstrukte fehlen: keine Pointer keine Destruktoren sondern automatische Garbage Collection keine Mehrfachvererbung kein Operator-Overloading Bytecode Verification Security Manager und Security Policies erlauben feinkörnige Rechtevergabe für Java-Programme Exception Handling Thread-Sicherheit in die Sprache integriert Java API Es existiert eine rießige Anzahl von vordefinierten Klassen, die mit der Java Umgebung ausgeliefert werden, z.b. Datenbankunterstützung (java.sql) Netzwerkunterstützung (java.net) Unterstützung für verteilte Systeme (java.rmi) 2D Graphik (java.awt) Collektionframework (java.util) XML Unterstützung (javax.xml) Graphische Benutzeroberflächen (javax.swing) Java Klassen sind in Packages organisiert Ein Package gibt den Namensraum einer Klasse an z.b. java.lang.string Arten von Java Programmen Java Applications Laufen in einer JVM, die von Betriebssystemebene aus gestartet wird Zugriff auf alle lokalen Ressourcen Java Applets Laufen in der JVM des Browsers (bzw. in dem JVM Plug-in des Browsers) Werden in HTML-Seiten eingebunden Hohe Sicherheitsbeschränkungen (kein Zugriff auf lokale Ressourcen wie Filesystem, Drucker, etc.) Java Servlets Laufen in einer JVM eines Webservers Dynamisches erzeugen von Web-Seiten 19 20

6 Beispiel für eine komplexe Java Application Hello World Application public class Hello { public static void main(string[] args) { System.out.println("Hello World"); Speichern als Textdatei Hello.java Aufruf des Java-Compilers: javac Hello.java erzeugt die Bytecode-Datei Hello.class Ausführen des Bytecodes: java Hello Hello World Applet Java Basics import java.applet.applet; import java.awt.graphics; public class HelloApplet extends Applet { public void paint(graphics g) { g.drawstring("hello World", 5, 20); <html> <head><title>helloapplet Test</title></head> <body> Hier kommt das Applet: <applet code="helloapplet.class" codebase="." width="500" height="100"></applet> </body> </html>.java Datei.html Datei Klassen- und Interface-Definition Datentypen Variablen- und Methodendeklaration Kontrollfluss Bedingungen (if-then, if-then-else, switch) Schleifen (while, do, for) Exception Handling throws, throw, try-catch 23 24

7 Klassen und Interfaces Datentypen [public] [abstract] class Klassenname [extends Klassenname] [implements Interfacenamen] { Klassen/Instanz Attribute Konstruktoren Klassen/Instanz Methoden [public] interface Interfacename [extends Interfacename] { Klassen Attribute Instanz Methoden 25 Elementare Typen Ganze Zahlen: long(64 bit), int(32), short(16), byte(8) Gleitkommazahlen: double (64 bit), float (32 bit) boolean char (16 bit Unicode character) Referenztypen Classes (z.b. String), Arrays, Interfaces Die Konstante null bezeichnet die leere Referenz Referenztypen werden mit dem new-operator erzeugt Zuweisung eines Referenztyps kopiert den Verweis 26 Variablendeklaration Typename Variablenname [Wertzuweisung] ; int x; int[] vector = new int[3]; boolean b = true; char c = 'A'; String text = "Hallo Welt"; String text = new String("Hallo Welt"); f = new (); Die String-Klasse bildet eine Ausnahme: obwohl String ein Referenttyp ist, können String Instanzen mit Variable="Text" instanziiert werden. Methoden [private public protected] Typename Methodenname (Argumentenliste) [throws Exception] { Methodenrumpf void sayhello() throws NoVoiceEx {System.out.println("Hallo Welt"); public String tostring() {System.out.println("Hallo Welt"); protected int setposition(int x, int y) {m_x=x; m_y=y; 27 28

8 Methodenaufruf Zugriffsbeschränkungen Objekt.Methode(Argumente); Objekt String text = "Hallo Welt"; String hallo = text.substring(1,5); System.out.println(hallo); text.substring(1,5).indexof("llo"); Methode Argumente Kennzeichnung Klassen UML private nur die Klasse selbst - protected auch alle Unterklassen # public alle Klassen + keine Angabe alle Klassen des Packages (package private) keine "friend" Deklarationen wie in C++ Anwendung: Methoden, Attribute, Klassen Bedingungen Schleifen if (Ausdruck) { then-block else { else-block Beispiel: if (x<0) { y = -x; else { y = x; switch (Int-Ausdruck) { case wert1: block1; break; case wert2: block2; break; default: default-block Beispiel: switch(x){ case 1: System.out.println("eins"); break; case 2: System.out.println("zwei"); break; default: System.out.println("?"); while (Ausdruck) { Schleifenrumpf Beispiel: int x=10; while(x>0) { System.out.println(x); x=x-1; for (Init, Ausdruck, Schritt) { Schleifenrumpf Beispiel: for(int x=10; x>10; x=x-1) { System.out.println(x); 31 32

9 Exception Handling Die Klasse public static String readfile(string filename) throws IOException { public static void main(string[] args) { String content = ""; if (args!= null && args.length > 0) { try { content = readfile(args[0]); System.out.println(content); catch (IOException e) {System.err.println("Fehler: "+e); 33 public class { // Attribute: x-/y-koordinate protected int myx, myy; public () { // Konstruktor // Methoden: public int getx() {return myx; public int gety() {return myy; public void setx(int x) {myx=x; public void sety(int y) {myy=y; public String tostring() { return new String("["+myX+","+myY+"]"); #myx:int #myy:int +() +setx(x:int) +sety(y:int) +getx():int +gety():int +tostring():string 34 Die Klasse GeomApp Konstruktoren public class GeomApp { public static void main(string[] args) { f = new (); f.setx(10); f.sety(20); System.out.println(f.toString()); Ausgabe: [10,20] Spezielle Methoden zur Initialisierung, die bei der Instanziierung aufgerufen werden Konstruktoren haben denselben Namen wie die Klasse und keinen Rückgabewert Konstruktoren können Parameter haben Jede Klasse hat einen impliziten Default- Konstrutor, der keine Parameter hat Jeder Konstruktor ruft implizit den Konstruktor der Superklasse auf: super() Ausnahme: hat die Superklasse keinen öffentlichen Konstruktor Durch explizite Angabe kann ein entsprechender Konstruktor der Superklasse ausgewählt werden #myx:int #myy:int +() +(x:int,y:int) +(p:) +setx(x:int):int +sety(y:int):int +getx():int +gety():int +tostring():string 35 36

10 Die Klasse public class { // Attribute: x-/y-koordinate protected int myx, myy; // Konstruktoren: public () { public (int x, int y) {myx=x; myy=y; public ( f) {myx=f.myx; myy=f.myy; Die Klasse f1 = new (10,20); f2 = new (f1); System.out.println("f1:"+f1.toString()+", f2:"+f2.tostring()); Ausgabe: f1:[10,20], f2:[10,20] // Methoden Die Klasse Square Die Klasse Square #x:int #y:int +() +(x:int,y:int) +(p:) +setx(x:int):int +sety(y:int):int +getx():int +gety():int +tostring():string -a:int Square +Square(a:int) +Square(p:,a:int) +setlength(a:int):void +getlenght():int +getarea():float +tostring():string public class Square extends { // Attribute private int a; // Konstruktoren public Square ( f, int a) {super(f); this.a=a; public Square (int a) {super(); this.a=a; // neue Methoden public int getlength() {return a; public void setlength(int a) {this.a=a; public float getarea() {return a*a; // überschriebene Methoden public String tostring() { return "[x/y:"+super.tostring()+"a:"+a+"]"; Ist a Attribut oder Argument? this.a this gibt die Referenz auf dieses Objekt an, super auf die Implemtierung der Superklasse 39 40

11 Die Klasse GeomApp Überschreiben von Methoden public class GeomApp { public static void main(string[] args) { f = new (10,20); f2 = new Square(f,5); // Square ist ein // getarea() nicht definiert für -> Downcasting // sicheres Downcasting mit: if(f2 instanceof Square) float a= ((Square)f2).getArea(); System.out.println(f2.toString() + " area: "+a); Ausgabe: 41 Hat eine Methode einer Subklasse die gleiche Signatur einer Methode der Superklasse, so wird die Superklassenmethode überschrieben (overriding) definiert eine Methode tostring(): String tostring() {return new String("["+x+","+y+"]"); Square überschreibt die Methode: String tostring() {return "[x/y:"+super.tostring()+"a:"+a+"]"); Auswirkung: f2 = new Square(new (10,20),5); System.out.println(f2.toString()); // Ergebnis [x/y:[10,20], a:5] Obwohl die Variable f2 vom Typ ist, referenziert sie ein Objekt vom Typ Square, dessen tostring() Methode ausgeführt wird 42 Überladen von Methoden static String read(string filename) { static String read(string filename, String path) { static String read(file file) { Gibt es mehrere Methoden mit demselben Namen aber mit unterschiedlichen Signaturen, so spricht man von Überladen (overloading) String f = "Hallo.java"; String content = read(f); Beispiel: System.out.println() (siehe APIDokumentation) ruft erste Variante auf, da f vom Typ String ist. 43 Teil 3: Entwicklung eines kleinen Web-Browsers Eclipse Demo Eclipse im Web: 44

12 Swing GUI Komponenten Toplevel Container: JDialog, JFrame, Ausschnitt aus Swing/AWT- Klassenhierarchie General Purpose Container: JSplittPane, JTabbedPane, JScrollPane, Basic Controls: JButton, JMenu, JTextField, JSlider, Container Können andere Komponenten enthalten Beispiel: Toplevel-Container JFrame Beispiel: Web Browser JFrame JTextField JEditorPane JButton 47 48

13 Schritt 1 Schritt 2 public static void main(string[] args) { // erzeuge Anwendungsfenster: JFrame frame = new JFrame("MiniBrowser"); // erzeuge GUI Komponenten: JTextField field = new JTextField(); JEditorPane editor = new JEditorPane(); JButton button = new JButton("refresh"); // definiere Layout und füge Komponenten hinzu: frame.getcontentpane().setlayout(new BorderLayout()); frame.getcontentpane().add(field, BorderLayout.NORTH); frame.getcontentpane().add(editor, BorderLayout.CENTER); frame.getcontentpane().add(button, BorderLayout.SOUTH); // setze Größe und zeige Frame an: frame.setsize(400,200); frame.setvisible(true); 49 public class WebBrowser extends JFrame { private JTextField field = new JTextField(); private JEditorPane editor = new JEditorPane(); private JButton button = new JButton("refresh"); public WebBrowser() { super(); settitle("mini Browser"); button.addactionlistener(this); editor.seteditable(false); getcontentpane().setlayout(new BorderLayout()); getcontentpane().add(field, BorderLayout.NORTH); getcontentpane().add(editor, BorderLayout.CENTER); getcontentpane().add(button, BorderLayout.SOUTH); public static void main(string[] args) { JFrame frame = new WebBrowser(); frame.setsize(400, 200); frame.setvisible(true); 50 Schritt 3 public class WebBrowser extends JFrame implements ActionListener { public void actionperformed(actionevent e) { System.out.println("URL: "+field.gettext()); try { editor.setpage(field.gettext()); catch (IOException e1) { e1.printstacktrace(); Links und Literatur Java Hauptseite: Java Tutorials: Bücher David Flanagan: "Java in a Nutshell", O'Reilly, 11/2002, 1104 Seiten, Alexander Niemann:"Objektorientierte Programmierung in Java. Das Einsteigerseminar", vmi Buch, 12/2002, 400 Seiten, 51 52

14 Kompaktkurs Java In der vorlesungsfreien Zeit nach dem Sommersemester 7 Tage Java in kompakter Form, kombiniert mit Übungen Inhalt: Tag 1+2: Die Programmiersprache Java Tag 3: Objektorientierte Analyse und Design, UML, Entwurfsmuster Tag 4: GUI Entwicklung: Swing, AWT, Java2D Tag 5: Datenbankanbindung mit JDBC, Einführung in SQL Tag 6: Java Servlets und Java Server Pages Tag 7: Java APIs für XML Im Anschluss: 7 Tage XML Kompaktkurs 53

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

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

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

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

Einführung in die Programmiersprache Java II

Einführung in die Programmiersprache Java II Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden

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

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

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

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

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

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

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

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

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

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

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

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

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7 Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck

Mehr

Applications Applets (eingeschränkte Rechte)

Applications Applets (eingeschränkte Rechte) 1 Arten von Java-Programmen Man unterscheidet 2 verschiedene Arten von Java-Programmen: Applications Applets (eingeschränkte Rechte) Erstere sind eigenständige Programme. Letztere sind "kleine" Programme,

Mehr

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische

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. Abstrakte Klassen

5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,

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

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

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

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Grundlagen der Programmierung APPLETS

Grundlagen der Programmierung APPLETS Grundlagen der Programmierung APPLETS Inhalt dieser Einheit Java-Applets: Java-Applets Vor- und Nachteile Sicherheitskonzepte Methoden Einbetten in HTML Graphical User Interface 2 Java Applets Applets

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

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

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

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

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

Applets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog.

Applets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog. Johann Wolfgang Goethe-Universität Professur für Graphische Datenverarbeitung Fachbereich Informatik und Mathematik Prof. Dr. Detlef Krömker Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung

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

Typumwandlungen bei Referenztypen

Typumwandlungen bei Referenztypen Typumwandlungen bei Referenztypen Genau wie es bei einfachen Typen Typumwandlungen gibt, gibt es auch bei Referenztypen Umwandlungen von einem Referenztypen in einen anderen Referenztypen, die wie bei

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

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

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

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 Virtual Machine (JVM) Bytecode

Java Virtual Machine (JVM) Bytecode Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,

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

Innere Klassen in Java

Innere Klassen in Java Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird

Mehr

4. AuD Tafelübung T-C3

4. AuD Tafelübung T-C3 4. AuD Tafelübung T-C3 Simon Ruderich 17. November 2010 Arrays Unregelmäßige Arrays i n t [ ] [ ] x = new i n t [ 3 ] [ 4 ] ; x [ 2 ] = new i n t [ 2 ] ; for ( i n t i = 0; i < x. l e n g t h ; i ++) {

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

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

Algorithmen und Datenstrukturen

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

Mehr

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de Stand FTE2 Anfang 4. Semester plus Projekt Multiuhren_Thread Ich gehe im Hinblick auf Klassenarbeiten und der Abschlussprüfung davon aus, dass Sie das Skript OOP JAVA2 durchgearbeitet haben. Wir haben

Mehr

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI) 1 JAVA für Bauingenieure Alexander Karakas SS 2008 Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI) 21.05.2008 2 Was ist ein(e) GUI? GUI = Graphical User Interface = Graphische

Mehr

2A Basistechniken: Weitere Aufgaben

2A Basistechniken: Weitere Aufgaben 2A Basistechniken: Weitere Aufgaben 2A.3 Programmierung unter UNIX/Linux 1. Gegeben sind einige Ausschnitte von C-Programmen, die unter UNIX/Linux ausgeführt werden sollen. Beantworten Sie die zugehörigen

Mehr

DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung

DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung Aufgabe Editor package BA.GUI.Swing; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.logging.level; import java.util.logging.logger;

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

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

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

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan

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

Java I Vorlesung 11 Graphische Oberflächen mit Swing

Java I Vorlesung 11 Graphische Oberflächen mit Swing Java I Vorlesung 11 Graphische Oberflächen mit Swing 5.7.2004 Swing Komponenten Layout-Manager Events Swing und Threads Die Java-Plattform 2 Die Java-Plattform 3 "Hello World" in Swing HelloWorldS.java

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

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

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. Web Service - Clients. Kommunikation zw. Web Services Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur

Mehr

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer Applets Belebung von Webseiten Dipl.-Ing. Wolfgang Beer Was sind Applets? Java Klassen, die spezielle Richtlinien befolgen, um: "in Internet-Browsern lauffähig zu sein" Somit ist, komplexere Funktionalität,

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

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Wiederholung JAVA. 1. (Vorbereitung)

Wiederholung JAVA. 1. (Vorbereitung) Softwaretechnik für IM, WS2018/2019 http://knopper.net/bw/swt/ Übung 1 Wiederholung JAVA Hinweise: Das JAVA Development Kit (JDK) zum Entwickeln von JAVA-Programmen und das JAVA Runtime Environment (JRE)

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

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

GUI Programmierung mit JAVA Swing

GUI Programmierung mit JAVA Swing GUI Programmierung mit JAVA Swing Komponenten Layout Event Handling Imaging 2001 Thomas Weiler 1 JAVA Swing Bibliothek zur Erstellung grafischer Benutzerschnittstellen in JAVA Bietet Klassen für grafische

Mehr

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla BlaBla Diese Kennzeichnungen sind nur Erläuterungen und nicht Bestandteil des Diagramms Quelle: P.Grässle, H.Baumann, P.Baumann, UML projektorientiert, Galileo Verlag, 2003 21 Primäre Begriffe Kapselung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 14 Einstieg in die Informatik mit Java Swing Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 14 1 Einführendes Beispiel 2 Eigenschaften von Swing 3 Typisches Swing-Applet

Mehr

Distributed Computing Group

Distributed Computing Group JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7

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

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

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

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

Software Engineering Klassendiagramme Einführung

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

Mehr

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords 4.0 Proinformatik III Objektorientierte Programmierung Michael Kölling University of Kent Canterbury, UK Selbstbestimmtes Lernen Vorlesung Tutorium Übungen Buch Web-Seite Üben, üben, üben! Format Vorlesung:

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

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

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

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung. Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik II: Objektorientierte SW-Entwicklung,

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

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

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

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur

Mehr

5. Tutorium zu Programmieren

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

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

Einführung in Eclipse und Java

Einführung in Eclipse und Java Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik

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

Einführung in die Programmiersprache Java II

Einführung in die Programmiersprache Java II Einführung in die Programmiersprache Java II ??????????? UML Klassendiagramm zeigt Klassen und ihre Beziehungen untereinander Visualisierung und Modellierung der statischen Struktur eines Systems Klassen

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

Aufgabenblatt Nr. 5 Generizität und TicTacToe

Aufgabenblatt Nr. 5 Generizität und TicTacToe Aufgabenblatt Nr. 5 Generizität und TicTacToe 1 Generische Sortier-Methode 1.1 Aufgabe: Entwickeln einer generischen Sortiermethode für Objekte mit der Schnittstelle Comparable Ihnen ist aus der Vorlesung

Mehr

Teil 3 - Java. Grundlagen Klassen, Attribute Methoden

Teil 3 - Java. Grundlagen Klassen, Attribute Methoden Teil 3 - Java Grundlagen Klassen, Attribute Methoden 1 Java 2 - Geschichte Ursprung: Green -Project bei der Firma Sun Microsystems 1991 Entwicklung eines Systems mit folgenden Eigenschaften: hardwareunabhängig

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

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

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

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr