Objektorientiertes Programmieren. Agenda. Programmierung in Java. 3. Semester ETM Übung

Größe: px
Ab Seite anzeigen:

Download "Objektorientiertes Programmieren. Agenda. Programmierung in Java. 3. Semester ETM Übung"

Transkript

1 Objektorientiertes Programmieren Programmierung in Java 3. Semester ETM Übung Agenda Organisatorisches Inhalte der Lehrveranstaltung Erstkontakt JAVA DI Elmar Krajnc 2 Elmar Krajnc FB Programmierung und Softwareengineering elmar.krajnc@fh-joanneum.at Termin nach Vereinbarung DI Elmar Krajnc 3 1

2 Organisatorisches LV Ablauf Vortrag Mitarbeit, Übungen praktische Arbeit Abgaben Beurteilung DI Elmar Krajnc 4 Beurteilung Abgabe von Übungsbeispielen 4 Abgaben (80%) Abgabe am Elearning Server Keine Plagiate (Fremde Packages oder Codeteile kennzeichnen) Mitarbeit Mitarbeit in der LV, Wiederholung, Klausur (20%) Prüfung Nur wenn LV negativ bewertet werden muss DI Elmar Krajnc 5 Inhalte der Lehrveranstaltung Kennenlernen von Java Grundlagen der Objektorientierung Klassen Kapselung Vererbung Polymorphie Vertiefung der Java Kenntnisse Packages Exceptions IO Collections Deploying DI Elmar Krajnc 6 2

3 Verweise Bücher Gosling, Arnold, Holmes; The Java Programming Language Campione, Walrath, Huml; The Java Tutorial Krüger; Handbuch der Java Programmierung Internet DI Elmar Krajnc 7 Was ist Java Java ist Programmiersprache JAVA wurde von SUN entwickelt und erstmals 1995 vorgestellt. Bekannt durch Einbindung in Web-Browsern (Applets) JAVA Javascript Wichtigste Eigenschaften Plattformunabhängig Objektorientiert Robust Portierbar Ähnliche Syntax wie C oder C++ Umfangreiche Klassenbibliothek DI Elmar Krajnc 8 Was brauchen man um Java-Programme zu erstellen? JAVA Development Kit (JDK) Enthält Software zur Erstellung von Java-Programmen: Java Packages mit entsprechenden Klassen Tools Java Compiler Java Runtime Environment Javadoc Tool Debugger Online-Dokumentation Beschreibung des Application Program Interface (API) Beschreibt Klassen, Eigenschaften und Methoden DI Elmar Krajnc 9 3

4 JDK Seit Version 1.2 (JAVA 2) gibt es verschieden Editionen von JDKs: Java SE - Java Standard Edition Standardklassen wie I/O, GUI, Collections, Java EE - Java Enterprise Edition Erweitert Java SE für serverseitige Programmierung Bsp: Servlets, Webapplication, EJB,.. Java ME - Java Micro Edition API für mobile Geräte Bsp.: Midlets, Handy-Spiel, Momentane Version Java SE (Online-Doku) DI Elmar Krajnc 10 Umgebungsvariablen JAVA_HOME = Verzeichnis des JDK z.b.: c:\programme\java JAVA_HOME ist meist nicht zwingend zu setzen PATH Variable muss um das /bin-verzeichnis des JDK erweitert werden <bisheriger Path>;c:\Programme\java\javaSE6\bin Bsp.: Set path=%java_home%\bin;%path% (Windows) PATH=/usr/java/javaSE6/bin:$PATH (LINUX) CLASSPATH Gibt an, in welchen weiteren Verzeichnissen und jar-archiven (neben dem aktuellen Verzeichnis und dem JDK) nach class-files und packages gesucht werden soll. Nur im Spezialfall zu setzen DI Elmar Krajnc 11 Wie funktioniert JAVA? Sourcecode in einem Editor schreiben MyProgram.java Sourcecode kompilieren javac MyProgram.java Es ensteht Bytecode MyProgram.class Bytecode ist plattformunabhängig und wird von der Java Virtual Machine (JVM) interpretiert java MyProgram Das Programm wird ausgeführt DI Elmar Krajnc 12 4

5 Wie funktioniert JAVA? Wie funktioniert JAVA? JVMs sind für unterschiedlichste Betriebssysteme verfügbar. Die JVM ist Teil des Java Runtime Environment (JRE), welches wiederum Bestandteil des JDK ist. DI Elmar Krajnc 13 Erstes Java-Programm /** * Klasse, die einen Text auf der Konsole ausgibt */ public class HelloWorld { public static void main (String[] args) { System.out.println("Hello World!"); //main //HelloWorld Datei speichern als HelloWorld.java (MUSS gleich lauten wie die Klasse, Achtung Case-sensitive!) javac HelloWorld.java (erzeugt HelloWorld.class) java HelloWorld (Aufruf immer OHNE.class) DI Elmar Krajnc 14 Übungsbeispiel Erstellen von HelloWorld in Java Kompilieren Ausführen DI Elmar Krajnc 15 5

6 Kommentare in JAVA // Kommentar Compiler ignoriert den Text von // bis zum Ende der Zeile Keine Berücksichtigung vom Javadoc-Tool /* Kommentar */ Compiler ignoriert Text von /* bis */ Keine Berücksichtigung vom Javadoc-Tool /** Kommentar */ Compiler ignoriert Text von /** bis */ Javadoc-Tool nutzt diesen Text um automatische Dokumentation zu generieren Javadoc-Doku: DI Elmar Krajnc 16 Dokumentieren mit javadoc spezielle Kommentare zw. /**... */ einfügen auch HTML-Tags möglich möglich Bsp.: /** Programm Hallo gibt <i>hallo Welt</i> #main */ Aufruf: javadoc Hallo.java erzeugt Hallo.html DI Elmar Krajnc 17 Online Dokumentation (API) Klassenhierarchie Suche nach bestimmten Klassen Zeigt zugehörige Konstruktoren, Methoden, Eigenschaftsfelder Index aller Felder und Methoden Wenn Klasse nicht bekannt ist Suche nach Felder und Methoden Verlinkung zur detailierten Beschreibung von Klassen, Methoden, DI Elmar Krajnc 18 6

7 Java-API API-Dokumentation packages Methoden etc. Klassen DI Elmar Krajnc 19 Namenskonventionen Klassen und Interfaces Beginnen mit Großbuchstaben Substantiv Bsp.: HelloWorld, Database, Image Konstante Beginnen mit Großbuchstaben und bestehen aus Großbuchstaben, Underline und Ziffern Bsp.: MAX_USERS Objekte, Methoden, Variablen, Packages Beginnen mit Kleinbuchstaben und bestehen aus Klein- und Großbuchstaben sowie Ziffern Methoden oft als Verb Bsp.: getvalue, openfile, isempty DI Elmar Krajnc 20 Sprachgrundlagen Datentypen und Anweisungen 7

8 Datentypen Primitive Datentypen Logische Typ boolean (true;false) 1 Byte (b=true;) Zeichentyp char (alle Unicode-Zeichen) 2 Byte (c='a';) Ganzzahlige (integrale) Typen byte 1 byte (b=123;) short 2 Byte (s=-1234;) int 4 Byte (i=5678;) long 8 Byte (l=-34567l;) Fließkommazahlen float 4 Byte (f=234.67f;) double 8 Byte (d= ;) Objekt-Typen Zeichenketten String (s="abcd";) Alle als Klassen definierten Typen DI Elmar Krajnc 22 Deklaration und Wertzuweisung von Variablen Deklaration (Speicherreservierung) typ name; (int i;) typ name1, name2, name3 (char c1, c2, c3;) Wertzuweisung name = wert; (i = -35;) Wertzuweisung mit Typumwandlung (Casting ( Casting) name = (typ) wert; (c = (char) 7;) Deklaration mit Anfangswertzuweisung typ name = wert; (boolean b = false;) Achtung: Die Deklaration gilt immer nur innerhalb des Bereiches (Klasse, Methode, Block) in dem sie steht. DI Elmar Krajnc 23 Garbage Collector Um die Rückgabe R von Speicher braucht man sich als JAVA-Programmierer nicht zu kümmern. k Das übernimmt der Garbage Collector! GC ist ein Hintergrundprozess, der Speicherplatz von nicht referenzierten Objekten freigibt. Achtung der Zeitpunkt der Rückgabe R ist undefiniert! DI Elmar Krajnc 24 8

9 Anweisung und Block Jede Anweisung wird mit einem Strichpunkt (;) beendet. Ein Block ist ein Zusammenfassung von Anweisungen, die hintereinander ausgeführt werden. Deklarationen von Variablen innerhalb eines Blockes sind auch nur innerhalb dieses Blockes gültig g und sichtbar! Syntax { Anweisung1; Anweisung2; DI Elmar Krajnc 25 Verzweigung (if ( else) Verzweigungen dienen dazu, bestimmte Programmteile nur beim Eintreten bestimmter Bedingungen auszuführen. Syntax if (logischer Ausdruck) { else { Anweisung1; Anweisung2; Bsp.: if (geschlecht==0) { System.out.println("männlich"); else { System.out.println("weiblich"); Anweisung3; Anweisung4; DI Elmar Krajnc 26 Schleifen Wie in C gibt es auch in JAVA kopf- bzw. fußgesteuerte Schleifen sowie Zählschleifen. while-schleife (kopfgesteuert) while (log. Ausdruck) { Anweisung1; do-schleife (fußgesteuert) do { Anweisung1; while (log. Ausdruck); Bsp.: while (level < 10 ) { Game.play(); oder do { Game.play(); while (level < 10 ); DI Elmar Krajnc 27 9

10 Schleifen Wie in C gibt es auch in JAVA kopf- bzw. fußgesteuerte Schleifen sowie Zählschleifen for-schleife for (int name=startwert ;log. Ausdruck ; Wertänderung ) { Anweisung1; Bsp.: for (int level=1;level<10;level++){ score=score*level; DI Elmar Krajnc 28 Wichtige Operatoren Arithmetische Operatoren +, -, *, / Modulo %, Inkrement ++, Dekrement -- Vergleichsoperatoren gleich ==, ungleich!= kleiner <, größ ößer > <= kleiner gleich, >= größ ößer gleich Logische Operatoren Logisches NICHT! UND &&, ODER Exklusiv-ODER ^ DI Elmar Krajnc 29 Übungsbeispiele DI Elmar Krajnc 30 10

11 Übung Potenzen ausrechnen Schreiben Sie eine Applikation, die für ganze Zahlen mit Basis 1 bis 10 die Potenzen mit Exponent 1-5 berechnet und die Ergebnisse wie folgend beschrieben ausgibt: 1 hoch 1 = 1 1 hoch 2 = 1 10 hoch 5 = Hinweis: Potenzieren in Java mit Methode Math.pow(double basis, double exponent) im Package java.lang.math Vorgangsweise Verwenden Sie folgendes Grundgerüst: public class Ueb2aPotenzen { public static void main(string[] args) { //Variablen deklarieren double basis; //Schleifen Start for (){ //berechnen ergebnis = Math.pow(basis,exponent) //Ausgabe System.out.println() //Schleifen Ende Übung - Zinsenrechner Schreiben Sie ein Programm, das für einen bestimmten Geldwert und Zinssatz berechnet, um welchen Betrag sich der Grundwert jährlich erhöht. Die Laufzeit beträgt 10 Jahre. Geben Sie jeweils Jahr und Zinszuwachs im Vergleich zum Vorjahr aus. Hinweis: Der Geldwert erhöht sich jährlich um den Faktor (100+Zinssatz)/100. Zusatz 1: Geben Sie jeweils nach dem 5. und dem 10. Jahr auch den aktuellen Gesamtbetrag aus. 11

12 Vorgangsweise Verwenden Sie folgendes Grundgerüst: public class Ueb2bZinsen { public static void main(string[] args) { //Variablen deklarieren int startjahr = 2000; //Schleife Start for (){ //berechnen zuwachs = ; betrag = ; //Ausgabe System.out.println() //Schleife Ende Übung Zinsrechner mögliche Ausgabe Startjahr: 2000 Geldwert: Euro Laufzeit: 10 Jahre Zinssatz: 10.0 % 2000: Zuwachs: : Zuwachs: : Zuwachs: : Zuwachs: : Zuwachs: Gesamtwert: : Zuwachs: : Zuwachs: : Zuwachs: : Zuwachs: : Zuwachs: Gesamtwert: Objektorientierte Programmierung mit Java Grundlagen 12

13 Vorteile der Objektorientierung Natürliche Modellierung vieler Problemstellungen Verminderte Komplexität durch Abstraktion Kapselung Definierten Schnittstellen (Methoden) Erhöhte Effizienz bei der Entwicklung Wiederverwendung von Klassenbibliotheken DI Elmar Krajnc 37 Wichtige Begriffe der OOP (1) Klasse: allgemeine Beschreibung für ein Objekt; Bauplan ; Vorlage, z.b. Kochrezept Objekt: konkretes Ding, z.b. meinesachertorte, originalsachertorte originalsachertorte meinesachertorte DI Elmar Krajnc 38 Wichtige Begriffe der OOP (2) Eigenschaft (field ( field): Merkmal, z.b. Farbe, Größe,... Wie ist ein Objekt beschaffen? Methode (method ( method): Aktion, z.b. set Farbe(), berechnebackzeit(),... Was kann ein Objekt tun? Ereignis (event ( event): Zustand, der eintreten kann, z.b. Backofen zu heiss, Backzeit abgelaufen,... Worauf kann ein Objekt reagieren? DI Elmar Krajnc 39 13

14 Beispiel: DVD-Player KLASSE OBJEKT 1 OBJEKT 2 Eigenschaften bezeichnung farbe abmessungen mp3abspielbar Methoden play() skip() eject() isplaying() setlanguage(string lang) getfarbe() setfarbe(string col) Eigenschaften Sony silber 30x30x13 true Methoden play() skip() eject() isplaying() setlanguage("de") getfarbe() setfarbe("rot") Eigenschaften Panasonic schwarz 34x29x15 true Methoden play() skip() eject() isplaying() setlanguage("en") getfarbe() setfarbe("blau") DI Elmar Krajnc 40 Zugriff auf Instanzvariablen und Methoden Der Zugriff auf Variablen und Methoden erfolgt über das instanzierte Objekt Nach dem Objekt trennt ein Punkt die nachfolgende Instanzvariable oder Methode Klasse Objekt Konstruktor DVDPlayer sony=new DVDPlayer(); sony.bezeichnung="sony DVD 402"; Objekt sony.play(); Punkt als Trennzeichen Instanzvariable Objekt Punkt als Trennzeichen Methode DI Elmar Krajnc 41 Konstruktor ist eine spezielle Methode, die beim Instanzieren aufgerufen wird Instanzieren: Erzeugen eines Objekts mit new-operator Bsp: Klasse Objekt Konstruktor Torte meinetorte=new Torte(); Torte meinetorte=new Torte("Sacher"); oder: DVDPlayer sony=new DVDPlayer(); DI Elmar Krajnc 42 14

15 Wichtige Eigenschaften der OO Abstraktion Unterscheidung Bauplan und Umsetzung Wer weiß wie ein Lichtschalter funktioniert, kann alle ähnlichen Lichtschalter bedienen Kapselung Objekte können Attribute und Methoden verbergen Zugriff von außen wird geschützt DI Elmar Krajnc 43 Wichtige Eigenschaften der OO Vererbung Elternklasse (Superklasse) vererbt Eigenschaften und Attribute an Kindklasse (Subklasse) Hierarchische Beziehung Polymorphismus (Vielgestaltigkeit) Subklassen können als Instanz der Superklasse behandelt werden Bsp: Klasse Transportmittel ist Superklasse der Subklassen Moped und Auto. Eine Instanz der Klasse Auto kann auch als Instanz der Klasse Transportmittel behandelt werden. DI Elmar Krajnc 44 Objektorientierte Programmierung mit Java Klassen 15

16 Klassen Bauplan für (ähnliche) Objekte Beschreibung der Eigenschaften und Methoden die ein Objekt erhält Objekte (Instanzen) werden aus Klassen erzeugt Instanz 1 Instanz 2 Instanz 3 DI Elmar Krajnc 46 Definieren einer Klasse Festlegen von geeigneten Klassen und deren Eigenschaften und Methoden in der Problemanalyse Implementierung in den Sourcecode KlassenName Eigenschaften Class KlassenName { eigenschaftdeklaration; Methoden() methodendeklaration; Problemanalyse Klassendiagramm Implementierung Sourcecode DI Elmar Krajnc 47 Bsp.: Klasse Punkt definieren Festlegen von geeigneten Klassen und deren Eigenschaften und Methoden in der Problemanalyse Implementierung der Festlegung in den Sourcecode Klassendiagramm Punkt int x int y Punkt() draw() Sourcecode class Punkt { //attributdeklaration int x; int y; //methodendeklaration; //Konstruktor void Punkt(int x, int y){ void draw(){ DI Elmar Krajnc 48 16

17 Objekte Instanzieren Instanzieren Objekt einer Klasse erzeugen = Neues Objekt wird Schlüsselwort new erzeugt Klassenname objektname = new Klassenname([Initialisierungswerte]); Bsp: Punkt nullpunkt = new Punkt(0,0); Jede erzeugte Instanz ist eindeutig und besitzt eigene Kopien der Eigenschaften (Variablen). Diese Variablen werden daher auch Instanzvariablen genannt. DI Elmar Krajnc 49 Instanzvariablen Eigenschaften eines Objektes werden in Instanzvariablen gespeichert Alle Objekte einer Klasse haben die selben Instanzvariablen (selber Datentyp je Variable, selbe Anzahl von Variablen) Datentyp und Name der Variable werden in der Klasse deklariert Zugriff auf den Inhalt der Variable erfolgt über Objektnamen und Variablennamen, die durch einen Punkt getrennt sind nullpunkt.x=0; nullpunkt.y=0; Der Wert einer Variable kann während der Laufzeit verändert werden Instanzvariablen werden am Beginn der Klassendefinition definiert DI Elmar Krajnc 50 Klassenvariablen (statische Variablen) Klassenvariablen werden von allen Objekten einer Klasse geteilt. Alle Instanzen einer Klasse greifen auf die selben Klassenvariablen zu Klassenvariablen sind auch dann verfügbar, wenn noch keine Instanz der Klasse erzeugt wurde Deklaration: static typ name; Bsp.: static int count; count zählt hier beispielsweise die Anzahl der erzeugten Objekte der Klasse Punkt. Zugriff auf Klassenvariable über Klassenname und Variablenname getrennt durch einen Punkt. Punkt.count++; DI Elmar Krajnc 51 17

18 Standardvariable "this " this" this ist eine Referenz zum aktuellen Objekt this ist eine Referenz auf die aktuelle Instanz der Klasse in der man sich gerade befindet. Über this kann auf alle Variablen und Methoden der Instanz zugegriffen werden. public class Person { private String name; public setname (String name){ this.name=name; //bei Namensgleichheit von Parameter und Variable "this" verwenden DI Elmar Krajnc 52 Konstruktoren Jede Klasse benötigt einen oder mehrere Konstruktoren. Konstruktoren: reservieren den Speicherplatz für eine neu zu erzeugende Instanz, weisen den Instanzvariablen initiale Werte zu, haben denselben Namen wie die Klasse, werden wie Methoden deklariert, aber immer ohne Rückgabewert KlassenName(Parameter){.. Zu einer Klasse können mehrere Konstruktoren mit verschiedenen Parametern deklariert werden. DI Elmar Krajnc 53 Bsp. Konstruktor class Student { private String matrnr; private String name; private int semester; //Konstruktor Student(String name, String nr) { this.name = name;//this = aktuelles Objekt matrnr = nr; Instanzvariable Übergabeparameter Anwendung: Student stundent1 = new Student("Max Muster", " "); DI Elmar Krajnc 54 18

19 Default-Konstruktor Wenn kein Konstruktor erstellt wurde, wird defaultmäßig ein Konstruktor (ohne Parameter) erzeugt. void Student(){ Student s2 = new Student(); DI Elmar Krajnc 55 Objektorientierte Programmierung mit Java Methoden Methoden Methoden definieren das Verhalten von Objekten werden innerhalb der Klassendefinition angelegt habe Zugriff auf alle Eigenschaften des Objektes können mit Funktionen in anderen Programmiersprachen verglichen werden DI Elmar Krajnc 57 19

20 Main-Methode Methode Ist der Startpunkt einer jeden JAVA-Applikation (im Gegensatz zu z.b. Applets) Die main-methode ist eine Klassenmethode (static). Der Start der Applikation erfolgt ohne Instanzierung einer Klasse Der Java-Interpreter sucht beim Starten der Applikation nach der main-methode. Wird keine gefunden, so gibt es einen Laufzeitfehler String-Array übergibt Komandozeilenparameter als Argument an die main-methode Sichtbarkeit öffentlich Klassenmethode Übergabeparameter public static void main (String[ ] args){ Kein Rückgabewert erwartet DI Elmar Krajnc 58 Main-Methode Methode Übergabeparameter verwenden public class ParameterUebergabe{ public static void main (String[] args){ String param1 = args[0]; System.out.println("Param 1 lautet: "+param1); Aufruf: java ParameterUebergabe Hallo DI Elmar Krajnc 59 Deklaration von Methoden Methoden haben einen Bezeichner (Namen) wie Variablen haben ev. einen oder mehrere Übergabeparameter haben ev. einen Rückgabewert public void printmaximum(int a, int b) { if (a>b) { System.out.println(a); else { System.out.println(b); Signatur DI Elmar Krajnc 60 20

21 Aufruf von Methoden Aufruf durch Angabe von Bezeichner und Parameter public static void main(string[] args) { int x = 5; int y = 3; obj.printmaximum(x,y); public void printmaximum(int a, int b) { if (a>b) { System.out.println; Beim Aufruf werden den Parametern a und b der Methode die Werte x und y übergeben. a und b können nur innerhalb der Methode printmaximum verwendet werden. Es gibt keinen Rückgabewert (Schlüsselwort void). DI Elmar Krajnc 61 Deklaration von Methoden mit Rückgabewert R public int maximum(int a, int b) { if (a>b) { return a; else { return b; Der Rückgabewert soll vom Typ int sein return legt den Rückgabewert fest und beendet die Methode Sämtliche Datentypen können als Rückgabewert verwendet werden DI Elmar Krajnc 62 Aufruf von Methoden mit Rückgabewert R Aufruf durch Angabe von Bezeichner und Parameter public static void main(string[] args) { int x = 5; int y = 3; int max = obj.maximum(x,y); public int maximum(int a, int b) { if (a>b) { return x; Der Rückgabewert wird als Ergebnis der Methode maximum(x,y) der Variable max zugewiesen. DI Elmar Krajnc 63 21

22 Objektorientierte Programmierung mit Java Beispiel "objektorientiertes HelloWorld" Altes Hello World Alles in main-methode objektorientiertes HelloWorld Klasse Hello Konstruktor, Felder, Methoden Klasse Main Instanzierung eines Objekts Aufruf von Methoden DI Elmar Krajnc 65 Neues Design im Klassendiagramm Klasse Eigenschaften Methoden Main main() Hello name greets DI Elmar Krajnc 66 22

23 Beispiel Objektorientierung DI Elmar Krajnc 67 Objektorientierte Programmierung mit Java Gültigkeitsbereich - Scope Gültigkeitsbereich In Java gibt es 4 Einstellungen die den Gültigkeitsbereich von Variablen, Methoden und Klassen regeln. private protected public package (Standard) Gültigkeitsbereich bedeutet: Welche (anderen) Objekte dürfen auf eine Klasse bzw. Variablen und Methoden der programmierten Klasse zugreifen. Grundsätzlich können alle Variablen und Methoden innerhalb der Klasse, in die sie geschrieben sind, aufgerufen werden. DI Elmar Krajnc 69 23

24 Gültigkeitsbereich private Methoden oder Variablen können nur innerhalb der eigenen Klasse verwendet werden package (Standard) Methoden oder Variablen können innerhalb des ihres Paketes verwendet werden. Pakete sind Sammlungen von zusammengehörigen Klassen. protected Wie package, aber zusätzlich können abgeleitete Klassen in anderen Paketen diese Variablen und Methoden verwenden public Methoden und Variablen sind generell verwendbar. DI Elmar Krajnc 70 Gültigkeitsbereich Beispiel public class Person { private String name; public setname (String n){ name=n; public class Firma { public static void main(string[] args){ Person mitarbeiter = new Person(); mitarbeiter.name ="Meier"; //funktioniert nicht, da name = private mitarbeiter.setname("meier"); //funktioniert, da setname = public DI Elmar Krajnc 71 Wichtige Eigenschaften der Objektorientierung Abstraktion Unterscheidung Bauplan und Umsetzung Wer weiß wie ein Lichtschalter funktioniert, kann alle ähnlichen Lichtschalter bedienen Kapselung Objekte können k Attribute und Methoden verbergen Zugriff von außen wird geschützt Vererbung Elternklasse (Superklasse) vererbt Eigenschaften und Attribute an Kindklasse (Subklasse) Hierarchische Beziehung Polymorphismus (Vielgestaltigkeit) Subklassen können als Instanz der Superklasse behandelt werden Bsp: Klasse Transportmittel ist Superklasse der Subklassen Moped und Auto. Eine Instanz der Klasse Auto kann auch als Instanz der Klasse Transportmittel behandelt werden. DI Elmar Krajnc 72 24

25 Kapselung - Information Hiding kein direkter Zugriff auf Variablen (Attribute) einer Klassen Zugriff erfolgt über Methoden (getter, setter-methoden) public class Person { private String name; public setname (String n){ name=n; public String getname (){ return name; public class Firma { public static void main(string[] args){ Person mitarbeiter = new Person(); mitarbeiter.name = "Meier"; //funktioniert nicht, da name = private mitarbeiter.setname("meier"); //funktioniert, da setname = public String tischler = mitarbieter.getname(); DI Elmar Krajnc 73 Kapselung Allgemein gilt: Instanzvariablen repräsentieren den Zustand eines Objektes Methoden repräsentieren das Verhalten eines Objektes Methoden sind definierte Schnittstellen und bilden die einzige Möglichkeit um mit dem Objekt zu kommunizieren, d.h. Informationen über Zustand erhalten (Instanzvariablen lesen) Zustand verändern (Instanzvariablen ändern) Die als private deklarierten Instanzvariablen eines Objekts sind vor unkontrolliertem Zugriff außerhalb der eigenen Klassendefinition geschützt bzw. abgekapselt. Nur über definierte, öffentliche Schnittstellen (public Methoden) kann darauf zugegriffen werden DI Elmar Krajnc 74 Vorteile Kapselung Die Implementierung der Daten kann verändert werden, ohne dass Programmcode außerhalb der Klasse geändert werden muss. Der Zugriff auf die verschiedenen Variablen kann eingeschränkt werden. Dies verhindert sowohl Datenmanipulationen als auch irrtümliche Veränderung oder Abfrage der Daten. Außerdem können damit Programmierfehler eingeschränkt werden. Die Komplexität bei der Bedienung eines Objektes wird reduziert Bsp.: Fernseher Technisch komplizierter innerer Aufbau (= viele Instanzvariablen) einfache Schnittstelle zum Bedienen (z.b. Ein/Ausschalter) DI Elmar Krajnc 75 25

26 Objektorientierte Programmierung mit Java Klasse String, Arrays Klasse String Deklaration einer Objekt-Variablen: String name; // es wird noch kein Speicherplatz für das Objekt reserviert! Anlegen eines Objektes (Instanz) dieser Klasse: name = new String(); // Reservierung von Speicherplatz name = "Maier"; auch möglich: String name = new String("Maier"); bewusstes Zerstören eines Objekts: name = null; // der vom Objekt belegte Speicherplatz wird vom Garbage-Collector frei gegeben DI Elmar Krajnc 77 Wichtige String-Methoden int length(): aktuelle Länge char charat(int index): liefert das Zeichen an der Position index String substring(int beginn, int ende): liefert einen Teilstring boolean equals(object o), boolean equalsignorecase(string s), int compareto(string s): vergleicht 2 Strings int indexof(string s): sucht das erste Vorkommen von s innerhalb des String-Objekts String tolowercase(), String touppercase(): Umwandlung in Klein-/ Großbuchstaben DI Elmar Krajnc 78 26

27 Arrays in Java: Deklaration, Initialisierung, Zugriff In Java ein Objekt int[] gewicht = new int[10]; //index 0 bis 9 oder alternativ float[] temp = {12.3f, -1.5f, 8f; Zugriff auf Elemente über Index gewicht[0]=72; gewicht[9]=83; Anzahl der Elemente über Instanzvariable length System.out.println(gewicht.length); // 10 Achtung hier nicht length()! DI Elmar Krajnc 79 Objektorientierte Programmierung mit Java Übung Objektorientierte Programmierung mit Java Überladen von Methoden 27

28 Overloading - Überladen von Methoden Methoden innerhalb einer Klasse dürfen den gleichen Namen haben, WENN sie sich durch ihre Parameter Art Anzahl unterscheiden. Der Rückgabetyp und Parametername tragen NICHT zur Unterscheidung von Methoden bei! private void print(int a, int b) { private void print(int a) { private void print(double a) { private void print(int b) { //Fehler, gleich wie Methode 2 private int print(int a, int b) { //Fehler, gleich wie Methode 1 DI Elmar Krajnc 82 Aufruf überladener Methoden class MaxProgramm { int maximum (int x, int y) { if (x>y) { return(x); else { return(y); int maximum (int x, int y, int z) { int max; max = maximum(z, maximum(x,y)); return max; public static void main (String[] arg) { System.out.println(maximum(45,13,98)); Die richtige Methode wird über die Signatur automatisch gewählt. DI Elmar Krajnc 83 Objektorientierte Programmierung mit Java Packages 28

29 Wozu gibt es Packages? Einbinden von bereits programmiertem Code Wiederverwendung von vorhandenen Klassen deren Implementierung man kennt deren Implementierung man nicht kennt DI Elmar Krajnc 85 Was sind Packages? Packages sind Sammlungen von funktional zusammen gehörenden Klassen und dienen als Strukturelement oberhalb der Klassenebene Jede Klasse in Java ist Bestandteil genau eines Packages Viele Packages werden bereits mit der Java-Plattform mitgeliefert API (Application Program Interface) ist eine Sammlung von zusammengehörenden Packages Package-Namen können aus mehreren Teilen und beliebig tiefen Hierarchien bestehen Package.Klasse.Methode() od. Variable Bsp.: java.lang.math.sqrt(); DI Elmar Krajnc 86 Vorteile von Packages Systematische Ordnung, wenn viele Klassen verwendet werden Gleichnamige Klassen in unterschiedlichen Packages können eindeutig zugeordnet und verwendet werden (Namespaces) FHJoanneum.Person und IhreFirma.Person sind verschiedene Klassen aber durch unterschiedliche Packages spielt gleicher Klassenname keine Rolle Definition klarer public-klassen und Methoden, die auch von Klassen externer Packages eingebunden werden können DI Elmar Krajnc 87 29

30 Package erstellen Alle Klassen, die zu einem Package gehören, müssen im gleichen Verzeichnis gespeichert werden und müssen mit package packagename beginnen //Beispiel Datei mypackage/myclass.java package mypackage; public class MyClass { Neues Package mit Eclipse erstellen Rechter Mausklick auf Projekt New -> Package DI Elmar Krajnc 88 Packages verwenden Packages müssen entweder explizit oder implizit importiert werden //Beispiel explizite Importanweisung import mypackage.*; MyClass meineneueklasse = new MyClass(); //Beispiel implizite Importanweisung mypackage.myclass meineneueklasse = new mypackage.myclass(); DI Elmar Krajnc 89 Packages verwenden Einbinden des gesamten Paketes import java.util.*; Date d = new Date(); // steht zur Verfügung Vector v = new Vector(); // steht zur Verfügung Einbinden einzelner Klassen aus einem Paket import java.util.date; Date d = new Date(); // steht zur Verfügung Vector v = new Vector(); // steht nicht zur Verfügung DI Elmar Krajnc 90 30

31 Eigene Pakete öffentlich zur Verfügung stellen Klassen und Methoden die außerhalb des Packages verwendet werden sollen, müssen als public deklariert sein. Namenskonvention für weltweite eindeutige Nutzung Package-Pfad ist umgekehrter Domain-Name des Klassenerzeuger Beispiel: at.fhjoanneum.swd05.meinpackage muss in folgender Verzeichnisstruktur abgelegt werden: at/fhjoanneum/swd05/meinpackage/ DI Elmar Krajnc 91 Einige Java Standard Packages java.lang // keine import-anweisung nötig, da immer impliziter Import java.io // Eingabe-Ausgabe java.util // einige nützliche Klassen (Random, Date, Vector) java.net // Netzwerkprogrammierung java.awt // GUI- und Grafikprogrammierung Weitere Information zu Standard-Packages siehe Spezifikation zur Java-API! DI Elmar Krajnc 92 Spezialfall java.lang Das Package java.lang wird immer implizit importiert beinhaltet Klassen wie: String Math System Beispiel: System.out.println(String); System ist eine Klasse im Package java.lang out ist eine statische Variable von System vom Typ PrintStream In der Klasse PrintStream ist die Methode println(string) definiert DI Elmar Krajnc 93 31

32 Beispiel : Klasse Konsole Überladen der Methoden Erstellen des Packageetm07.util Einbinden des Packages in andere Klassen DI Elmar Krajnc 94 Objektorientierte Programmierung mit Java Vererbung Wichtige Eigenschaften der Objektorientierung Abstraktion Unterscheidung Bauplan und Umsetzung Wer weiß wie ein Lichtschalter funktioniert, kann alle ähnlichen Lichtschalter bedienen Kapselung Objekte können Attribute und Methoden verbergen Zugriff von außen wird geschützt Vererbung Elternklasse (Superklasse) vererbt Eigenschaften und Attribute an Kindklasse (Subklasse) Hierarchische Beziehung Polymorphismus (Vielgestaltigkeit) Subklassen können als Instanz der Superklasse behandelt werden Bsp: Klasse Transportmittel ist Superklasse der Subklassen Moped und Auto. Eine Instanz der Klasse Auto kann auch als Instanz der Klasse Transportmittel behandelt werden. DI Elmar Krajnc 96 32

33 Vererbung Vererbung ist eine der Grundideen der Objektorientierung Kindklassen (Subklassen) erben dabei sämtliche Variablen und Methoden der Elternklasse (Superklasse) Einfachvererbung Mehrfachvererbung In Java gibt es nur Einfachvererbung, keine Mehrfachvererbung. Eine Kindklasse kann also nur von einer Elternklasse erben. DI Elmar Krajnc 97 Klassendiagramm Vererbung erben alle Variablen und Methoden der Elternklasse und besitzen zusätzlich weitere Eigenschaften und Methoden Transportmittel baujahr: int vmax: int bezeichnung: String printinfo() Klasse Transportmittel enthält gemeinsame Variablen und Methoden Auto anztueren:int hatabs:boolean getanztueren()() Schiff anzkabinen:int bauart: String getbauart() Flugzeug maxflughoehe: int spannweite: double getspannweite() DI Elmar Krajnc 98 Implementierung der Elternklasse public class Transportmittel { // Instanzvariablen private int baujahr; private int vmax; private String bezeichnung; Transportmittel baujahr: int vmax: int bezeichnung: String printinfo() // Konstruktor Transportmittel (int bauj, int vmax, String bez){ // Methoden public void printinfo(){ System.out.println("Baujahr: "+baujahr); System.out.println("maximale Geschw.: "+vmax); System.out.println("Bezeichnung: "+bezeichnung); DI Elmar Krajnc 99 33

34 Implementierung der abgeleiteten Klasse Auto erbt alle Eigenschaften von Transportmittel und erweitert die Eigenschaften und Methoden Auto anztueren:int hatabs:boolean printinfo() public class Auto extends Transportmittel { private int anztueren; private boolean hatabs; // Konstruktor Auto (int bauj, int anztuer, String bez, boolean abs){ public void printinfo(){ DI Elmar Krajnc 100 Überschreiben (Overriding ( Overriding) ) von vererbten Methoden erbt alle Eigenschaften von Transportmittel, erweitert die Eigenschaften und überschreibt die Methode printinfo() Auto anztueren:int hatabs:boolean printinfo() public class Auto extends Transportmittel { private int anztueren; public void printinfo(){ private boolean hatabs; System.out.println("Baujahr: "+baujahr); System.out.println("maximale Geschw.: "+vmax); // Konstruktor System.out.println("Bezeichnung: Auto (int bauj, ){ "+bezeichnung); public void printinfo(){ super.printinfo(); // Methode in Klasse Transportmittel System.out.println("Tueren: "+anztueren); Mit Hilfe des Ausdrucks super wird auf die Elternklasse referenziert DI Elmar Krajnc 101 Instanzierung einer abgeleiteten Klasse // Konstruktor Elternklasse (Baujahr, max.geschw., Bez) Auto ford = new Auto (1978,170,"Ford Taunus"); // Konstruktor abgel. Klasse (Baujahr,AnzTüren,Bez., ABS?) Auto audi = new Auto (2002,5,"Audi A4",true); // Konstruktor der Superklasse mit Argumenten aufrufen public class Auto extends Transportmittel { // Konstruktor Auto (int bauj,int v, int anztuer, String bez, boolean abs){ super(bauj,v,bez+", "+anztuer+"-tuerig"); // muss 1. Zeile sein public class Transportmittel { // Konstruktor Transportmittel (int bauj, int vmax, String bez) { DI Elmar Krajnc

35 Übung Erstellen einer Superklasse Fahrzeug Erstellen von 2 abgeleiteten Klassen Auto und Flugzeug DI Elmar Krajnc 103 Objektorientierte Programmierung mit Java Vererbung (Fortsetzung) Polymorphismus Oft ist bekannt welche abgeleite Klasse verwendet werden soll Ist ein Programm in der Lage mit Instanzen einer Superklasse zu arbeiten, so kann es auch mit Instanzen der Subklassen arbeiten. Das bedeutet: jedes Programm, das mit Transportmittel arbeiten kann, kann auch mit Auto, Schiff oder Flugzeug arbeiten, da es die Methoden und Variablen von Transportmittel kennt. DI Elmar Krajnc

36 Kompatibilität t zwischen Sub- und Superklasse Wegen der Kompatibilität kann eine Instanz der Subklasse auch einer Superklassenvariablen zugewiesen werden (up-casting) Transportmittel airbus = new Flugzeug(); //airbus ist ein Flugzeug, sieht aber wie ein Transportmittel aus Klassentyp prüfen if ( airbus instanceof Flugzeug) { Umwandeln auf original Klassentyp Flugzeug a380 = (Flugzeug) airbus; //casting DI Elmar Krajnc 106 Problem up-casting Welche Methoden werden verwendet? Probleme Methode in Subklasse wird überschrieben Instanz der Subklasse wird in einer Superklassen-Variable gespeichert = up-casting Frage: Welche Methode wird verwendet? Transportmittel Antwort: Die Methode des erzeugten Typs wird ausgeführt Dynamische Bindung baujahr: int vmax: int bezeichnung: String printinfo() Transportmittel airbus = new Flugzeug(); airbus.printinfo(); Flugzeug maxflufhoehe: int spannweite: double printinfo() Auto anztueren:int hatabs:boolean printinfo() DI Elmar Krajnc 107 Attribut final final + primitiver Datentyp Der Wert der "Variablen" bleibt konstant = KONSTANTE final int MAX_VALUE = 100; final + Objekt-Datentyp Die Referenz bleibt konstant final Nummer n1 = new Nummmer(1); Nummer n2 = new Nummer(15); n1=n2; //funktioniert nicht, da für n1 keine neue Referenz erlaubt ist. final + Parameter Der Parameter ist in der Methode unveränderbar public void setbetrag ( final double zinsen){ zinsen = zinsen * 5; // nicht OK, da kein neuer Wert für zinsen erlaubt ist DI Elmar Krajnc

37 Attribut final final + Methode Verhindert das Überschreiben der Methode durch eine Subklasse. Anwendungsgründe: Sicherheit oder Effizienzsteigerung (kein dyn. Binden) public class Transportmittel { public final String getbezeichnung(){ final + Klasse Eine Vererbung dieser Klasse ist nicht möglich. Anwendungsgründe: Sicherheit od. Effizienz soll erhöht werden. Methoden einer final definierten Klasse sind ebenfalls implizit als final definiert. final class Transportmittel { public class Moped extends Transportmittel{ //Anweisung ist nicht erlaubt DI Elmar Krajnc 109 Objektorientierte Programmierung mit Java Interfaces und Abstrakte Klassen Mehrfachvererbung Mehrfachvererbung bedeutet, dass ein Subklasse von zwei oder mehreren Superklassen abgeleitet wird. Bsp. ein Fussball ist ein Sportgerät und eine Kugel Java unterstützt grundsätzlich KEINE Mehrfachererbung Schlüsselwort extends kann nur eine Klasse weitervererben eine Klasse kann aber mehrere Interfaces implementieren DI Elmar Krajnc

38 Interfaces Ein Interface ist eine spezielle Form einer Klasse bietet die Möglichkeit eine einheitliche Schnittstelle zu definieren enthält nur die Signatur von Methoden (nicht ausprogrammiert) und Konstanten Die Methoden sind implizit public Keine Definition von Konstruktoren erlaubt DI Elmar Krajnc 112 Definition eines Interfaces //Definition interface Kugel { // Konstante static final double pi = 3.14; //autom. static und final //Methode public double getvolume(); //autom. public, KEINE Implementierung DI Elmar Krajnc 113 Implementierung eines Interfaces //Implementierung class Fussball implements Kugel { public double getvolueme(){ //volumen berechnen return volume; Der Compiler prüft, ob alle Methoden des Interfaces implementiert wurden. //Implementierung und Vererbung class Fussball extends MySuperClass implements Kugel { DI Elmar Krajnc

39 Mehrfachimplementierung von Interfaces //Mehrfachimplementierung class MyClass implements MyInterface1, MyInterface2,... { public double gethoehe(){ return hoehe; Der Compiler prüft, ob alle Methoden des Interfaces implementiert wurden.... //alle Methoden der Interfaces MÜSSEN implementiert werden //Mehrfachimplementierung und Vererbung class MyClass extends MySuperClass implements MyInterface1, MyInterface2 { DI Elmar Krajnc 115 Abstrakte Klassen sind eine Mischung aus Superklasse und Interface bietet, genau wie bei Interfaces, die Möglichkeit eine einheitliche Schnittstelle zu definieren enthält neben ausprogrammierten Methoden auch Signaturen von Methoden die in der abgeleiteten Klasse programmiert werden müssen Wird in einer Klasse für mindestens eine Methode nur die Signatur definiert (=abstrakte Methode), so muss die gesamte Klasse als abstrakt definiert werden Abstrakte Klassen können nicht instanziert werden Alle abstrakten Methoden müssen in den Subklassen implementiert werden DI Elmar Krajnc 116 Definition und Implementierung von abstrakten Klassen //Definition abstract class MyAbstractClass { void normalemethode (int i){ //Programmcode abstract void abstraktemethode(int a); //Implementierung class NeueKlasse extends MyAbstractClass { void abstraktemethode(int a){ //wird jetzt programmiert DI Elmar Krajnc

Java Einführung Packages

Java Einführung Packages Java Einführung Packages Inhalt dieser Einheit Packages (= Klassenbibliotheken) Packages erstellen Packages importieren Packages verwenden Standard Packages 2 Code-Reuse Einbinden von bereits (selbst-/fremd)

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

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

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

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

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

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

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering 5 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger OPTSWE_SWE: 5 Programmentwicklung

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

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

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Abschnitt 12: Strukturierung von Java-Programmen: Packages Abschnitt 12: Strukturierung von Java-Programmen: Packages 12. Strukturierung von Java-Programmen: Packages 12.1 Strukturierung durch Packages 12.2 Zugriffsspezifikationen 12.3 Zusammenfassung 12 Strukturierung

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Studentische Lösung zum Übungsblatt Nr. 7

Studentische Lösung zum Übungsblatt Nr. 7 Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int

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

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

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

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

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

Mehr

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

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

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

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

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

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

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

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

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

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

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind

Mehr

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Vorlesung und Übung Universität Paderborn Wintersemester 2015/2016 Dr. Peter Pfahler Objektorientierung: Klassen und Objekte EWS, WS 2015/16, Pfahler L-1 Objektorientierung behandelt in "Einführung in

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

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

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

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

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein

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

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

Diana Lange. Generative Gestaltung Operatoren

Diana Lange. Generative Gestaltung Operatoren Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.

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

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

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

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

Mehr

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

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

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

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

Mehr

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

GetName(), GetName(), GetGeschlecht() und AelterWerden().

GetName(), GetName(), GetGeschlecht() und AelterWerden(). 11. Vererbung Vererbung ist eine der mächtigsten Funktionalitäten der objektorientierten Programmiersprachen. Man versteht unter Vererbung die Tatsache, dass eine Klasse alle Methoden und Variablen einer

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

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

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

Objektorientiertes JavaScript

Objektorientiertes JavaScript Objektorientiertes JavaScript Christoph Fabritz dm121506@fhstp.ac.at http://goo.gl/jzqxnw Inhalt JavaScript Objektorientierung OO in JavaScript Literatur JavaScript Interpretiert / gescriptet Dynamische

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

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x), Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode

Mehr

Software-Engineering Grundlagen des Software-Engineering

Software-Engineering Grundlagen des Software-Engineering Software-Engineering Grundlagen des Software-Engineering 7.2 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger SWE: 7.2 Programmentwicklung und Debuggen mit IDE

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

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

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

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

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien. Java 1 Einführung Grundlegende Übungsaufgaben Arbeitsauftrag 1.1 1. Formulieren Sie den Algorithmus nach den oben genannten Kriterien. Beispiel: Bedienung eines Getränkeautomaten

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

Programmieren Tutorium

Programmieren Tutorium Programmieren Tutorium Tom Schildhauer Tutorium 12 Universität Karlsruhe (TH) Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by Tom Schildhauer,

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

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

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

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

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

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

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7 Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

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

Objektbasierte Entwicklung

Objektbasierte Entwicklung Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit

Mehr

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

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

Mehr

Testklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten

Testklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten Matrikelnummer: Punkte: Testklausur 1 zur Vorlesung Modellierung und Programmierung I Dr. Monika Meiler Zeit: 60 Minuten Bemerkungen: Jedes Blatt ist mit der Matrikelnummer zu versehen. Jede Aufgabe ist

Mehr

2. Semester, 2. Prüfung, Lösung

2. Semester, 2. Prüfung, Lösung 2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter

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

Der lokale und verteilte Fall

Der lokale und verteilte Fall Lokale Beans Der lokale und verteilte Fall RemoteClient Lokaler Client (JSP) RemoteSession/Entity-Bean Lokale Session/Entity-Bean 2 Lokale Beans Die bisher vorgestellten EJBswaren immer in der Lage auf

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

Modul 122 VBA Scribt.docx

Modul 122 VBA Scribt.docx Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)

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

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15 Übersicht Schleifen Schleifeninvarianten Referenztypen, Wrapperklassen und API CoMa I WS 08/09 1/15 CoMa I Programmierziele Linux bedienen Code umschreiben strukturierte Datentypen Anweisungen und Kontrollstrukturen

Mehr

Graphic Coding. Klausur. 9. Februar 2007. Kurs A

Graphic Coding. Klausur. 9. Februar 2007. Kurs A Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt

Mehr

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg. Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert

Mehr

1. Übung zu "Numerik partieller Differentialgleichungen"

1. Übung zu Numerik partieller Differentialgleichungen 1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:

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