Algorithmik II. Aufgabe 5 a) In der Vorlesung im Wintersemester haben Sie folgende Klasse für ein Bankkonto kennengelernt:

Größe: px
Ab Seite anzeigen:

Download "Algorithmik II. Aufgabe 5 a) In der Vorlesung im Wintersemester haben Sie folgende Klasse für ein Bankkonto kennengelernt:"

Transkript

1 Aufgabe 5 a) In der Vorlesung im Wintersemester haben Sie folgende Klasse für ein Bankkonto kennengelernt: ( d e f i n e ( e r o e f f n e k o n t o g u t h a b e n ) ( d e f i n e ( abheben b e t r a g ) ( cond ( ( = g u t h a b e n b e t r a g ) ( s e t! g u t h a b e n ( g u t h a b e n b e t r a g ) ) g u t h a b e n ) ( e l s e ( error Konto : Guthaben r e i c h t n i c h t aus ) ) ) ) ( d e f i n e ( e i n z a h l e n b e t r a g ) ( s e t! g u t h a b e n ( + g u t h a b e n b e t r a g ) ) g u t h a b e n ) ( d e f i n e ( e n t s c h l u e s s e l e op ) ( cond ( ( eq? op e i n z a h l e n ) e i n z a h l e n ) ( ( eq? op abheben ) abheben ) ( e l s e ( error Konto : Unbekannte O p e r a t i o n ) ) ) ) e n t s c h l u e s s e l e ) Schreiben Sie in Java eine entsprechende Klasse Konto. Diese soll außerdem eine Methode kontostand haben, die den aktuellen Kontostand zurückliefert. Vergleichen Sie die Scheme-Fassung von Konto mit der Java-Fassung. class Konto private double guthaben = 0.0; Konto(double startguthaben) guthaben = startguthaben; public void einzahlen(double betrag) guthaben += betrag; public void abheben(double betrag) if (betrag <= guthaben) guthaben -= betrag; else System.out.println("Guthaben reicht nicht aus!"); public double kontostand() return guthaben; Mai Sommersemester 2001

2 Beim Vergleich der beiden Programme soll vor allem gezeigt werden, daß Java für die objektorientierte Programmierung bereits fertige syntaktische Konstrukte bereitstellt. Statt die ganze Klasse als Funktion zu schreiben (in Scheme ist alles eine Funktion, also auch ein Objekt), stellt man einen Konstruktor bereit; die Dispatch-Funktion muß nicht für jede Klasse programmiert werden; eine Notation, mit der man auf eine Methode einer Klasse zugreifen kann, ist bereits vorgegeben (Punkt Operator). Das Scheme-Programm wird folgendermaßen benutzt: ( d e f i n e marys Konto ( e r o e f f n e konto ) ) ( ( marys Konto abheben ) 2 0 ) Und das Java-Programm: Konto maryskonto = new Konto(100.0); maryskonto.abheben(20.0); b) Schreiben Sie zwei von der Klasse Konto abgeleitete Klassen Girokonto und Sparkonto. Ein Girokonto darf um ein vorher festgelegtes Dispolimit überzogen werden. Die Klasse Girokonto benötigt also neue Methoden zum Festlegen und zum Abfragen des Dispolimits. Der Einfachheit halber gehen wir davon aus, daß für das Überziehen des Kontos keine Zinsen gezahlt werden müssen. Für das Geld, das auf einem Sparkonto liegt, bekommt man jedoch Zinsen. Die Klasse Sparkonto benötigt also eine Methode, in der der Zinssatz festgelegt wird, und eine weitere Methode, in der dem Konto die angefallenen Zinsen gutgeschrieben werden. class Konto protected double guthaben = 0.0; // Der Defaultkonstruktor muss implementiert werden, // da er (in unserem Beispiel) von der abgeleiteten // Klasse aufgerufen wird Konto()... class Girokonto extends Konto private double dispositionsrahmen = 0.0; Girokonto (double startguthaben) guthaben = startguthaben; Mai Sommersemester 2001

3 Girokonto (double startguthaben, double dispo) guthaben = startguthaben; dispositionsrahmen = dispo; public void abheben (double betrag) if (guthaben - betrag >= dispositionsrahmen) guthaben -= betrag; else System.out.println("Dispositionsrahmen reicht nicht aus!"); public double getdispolimit () return dispositionsrahmen; public void setdispolimit (double wert) dispositionsrahmen = wert; class Sparkonto extends Konto private double zinssatz = 0.0; Sparkonto (double startguthaben) guthaben = startguthaben; Sparkonto (double startguthaben, double zins) guthaben = startguthaben; zinssatz = zins; public double getzinssatz () return zinssatz; public void setzinssatz (double wert) zinssatz = wert; public void schreibezinsengut (int anzahltage) guthaben += ((double) anzahltage / 360) * (zinssatz / 100.0) * guthaben; c) Das Programm erlaubt jetzt, Girokonten, Sparkonten und allgemeine Konten der Basisklasse anzulegen. Solche allgemeinen Konten gibt es aber in Wirklichkeit nicht. Ändern Sie daher die Basisklasse so, daß es nicht mehr möglich ist, Objekte von ihr zu erzeugen Mai Sommersemester 2001

4 abstract class Konto... d) Erklären Sie die Bedeutung des Schlüsselwortes interface. Hat es in unserem Beispiel Sinn, Konto zum interface zu machen? Wird eine Methode als abstract deklariert, so darf sie keinen Methodenrumpf besitzen (in von dieser Klasse abgeleiteten Klassen aber sehr wohl). Ein interface könnte man nun als abstrakte Klasse mit abstrakten Methoden und ohne Komponenten ansehen, eben als Schnittstelle. interfaces besitzen nur Methodennamen und Schnittstelleninformationen (zum Beispiel zu übergebende Argumente) aber keine Definitionen. Mit interfaces kann man also zu einer Klasse zusätzliches Verhalten hinzufügen, das nicht durch die Methoden der Klasse selbst oder der Oberklasse festgelegt wurde. In Java kann eine Klasse mehrere interfaces implementieren, sie kann aber nur von einer einzigen Oberklasse abgeleitet sein. In Bezug auf unser Beispiel Konto bedeutet dies, daß eine Festlegung von Konto als interface keinen Sinn macht, da zum Beispiel die Implementierung der Methode kontostand bereits in der Klasse Konto als Oberklasse vorgenommen werden kann. Aufgabe 6 a) Erläutern Sie kurz die Ihnen bekannten Darstellungsformen für die Syntax von Programmiersprachen. Zur Beschreibung kontextfreier Grammatiken und somit der Syntax von Programmiersprachen wurden in der Vorlesung die Syntaxdiagramme und die Backus Naur Form vorgestellt. Syntaxdiagramme Syntaxdiagramme sind eine Möglichkeit zur graphischen Darstellung der Syntax des kontextfreien Teils von Programmiersprachen. Es wird jedem nichtterminalen Symbol ein Diagramm (math.: gerichteter Graph) mit genau einer Eingangs- und einer Ausgangskante zugeordnet. Die Knoten des Diagramms repräsentieren die Grammatiksymbole, wobei terminale Symbole durch Ovale und nichtterminale Symbole durch Rechtecke dargestellt werden. Bestandteile: Mai Sommersemester 2001

5 Algorithmik II terminale Symbole : nichtterminale Symbole : Konkatenation : Alternative : Regelende : ( ) : durch sich selbst definiert Durchläuft man ein Syntaxdiagramm entlang der gerichteten Kanten von der Eingangs zur Ausgangskante, so ist die Folge der Knoteninhalte, die dabei vorkommen, aus dem zugehörigen nichtterminalen Symbol ableitbar. BNF (Backus Naur Form) Die BNF ist eine Metasprache (= formale Sprache), mit deren Hilfe wiederum Sprachen beschrieben werden können. Für jedes nichtterminale Symbol existiert eine BNF Regel. Die linke Seite (= zu definierendes nichtterminales Symbol) und rechte Seite (Beschreibung der Symbolfolgen, die aus der linken Seite ableitbar sind) einer Regel werden durch die Symbolfolge ::= getrennt. Gibt es mehrere rechte Seiten für ein nichtterminales Symbol, so werden diese durch senkrechte Striche getrennt aufeinanderfolgend hingeschrieben, ohne daß die linke Seite erneut hingeschrieben werden muß. Die nichtterminalen Symbole der Grammatik werden durch spitze Klammern gekennzeichnet. Bestandteile: ursprüngliche Form heute gebräuch liche Form terminale Symbole : ( )... nichtterminale Symbole :... ( ) Konkatenation : Alternative : Regelende : ( ). Im Laufe der Entwicklung wurden einige Abkürzungsmöglichkeiten eingeführt. Die so entstandene Beschreibungsform wird als EBNF (Extended Backus Naur Form) bezeichnet. Optionale Teile: Mai Sommersemester 2001

6 < > l < < < > < > l > > Algorithmik II Symbole oder Symbolfolgen, die auch weggelassen werden können, werden in eckige Klammern eingeschlossen. Wiederholung: Symbole oder Symbolfolgen, die beliebig oft wiederholt werden können, werden in geschweifte Klammern eingeschlossen, denen ein hochgestellter Stern folgt. Hierbei ist die nullmalige Wiederholung zugelassen. Soll diese ausgeschlossen sein, folgt der Klammer ein hochgestelltes Pluszeichen. Ausklammern: Ein allen Alternativen einer Regel gemeinsamer Teil kann ausgeklammert werden; die verbleibenden Anteile der Alternativen werden in geschweifte Klammern eingeschlossen. > b) Betrachten Sie den folgenden Ausschnitt aus der Definition der Syntax einer Programmiersprache:! "# $%$'& (! )+*-,.* 0/213 $%$'& :! ACD:EFE ;=< 7JEF+K3 GIH 7JEF+ $%$'& *LNMPO#QSRT* UDVBW *BXZY[* GIH B!!\"? *R6]ZX^*-3 UDVBW $%$'& 79_Ẁ EFAUDVBW acb6aefd7 79_Ẁ EFAUDVBW ef3 (a) Formulieren Sie den Grammatikausschnitt mit Hilfe von Syntaxdiagrammen. StatementSequence: l Statement 9ghjik; Statement Statement: Assignment ProcedureCall WhileStatement Mai Sommersemester 2001

7 ; w & / ; Algorithmik II WhileStatement: gh ik WHILE Expression gh ik DO StatementSequence gh ik END Expression: SimpleExpression Relation SimpleExpression (b) Ist die durch die Syntaxbeschreibung gegebene Grammatik eindeutig? Begründen Sie Ihre Antwort! Der Grammatikausschnitt ist eindeutig, da es für kein Wort zwei strukturell verschiedene Ableitungsbäume gibt. Grammatiken können nur dann zweideutig sein, wenn es ein rekursives nichtterminales Symbol gibt. In unserem Grammatikausschnitt ist das nichtterminale Symbol WhileStatement rekursiv ( 2 "# B! 7JEF+B! 7JEF+B! GIH ). Da das nichtterminale Symbol GIH nur an einer Stelle eine Rekursion enthält (! "# ) und diese Stelle durch Schlüsselwörter (DO... END) eingeschlossen ist, kann dies nicht zu strukturell verschiedenen Ableitungsbäumen führen. l Aufgabe 7 a) Gegeben sei die Chomsky Grammatik m n &I)2 ots+o "+/ q &I) o 4D/ &u) o : s0v o+ o "?4 o+ 4 o "K4 o+ 4 o " Fnpo0qro o mit (a) Welche Sprache erzeugt diese Grammatik? ƒ m &u)2 w " ( s v w (b) Welche der Symbolfolgen " skv, :" s0v sind gültige Wörter der gegebenen Sprache? Begründen Sie Ihre Antwort! w s v w yxz w "K4 s v w w " (~ 4 s v w x z w " ( s v w o Nxz /, " s Mai Sommersemester 2001

8 / Algorithmik II :" s v : kein gültiges Wort n, m x 0 ˆ n = 1 ˆ m + 2 = 1 ˆ 3n =3 &\ m x :" s0v 0 ˆ m = -1 (Widerspruch) : gültiges Wort n, m x 0 ˆ n = 1 ˆ m + 2 = 2 ˆ 3n = 3 &\ n, m x 0 ˆ n = 1 ˆ m = 0 : s v "?4 s v " s v " s0 : kein gültiges Wort n, m x 0 ˆ n = 2 ˆ m + 2 = 2 ˆ 3n = 5 &\ n = 2 ˆ n = 5/3 (Widerspruch) b) Konstruieren Sie für die folgenden Sprachen ƒ mš jeweils eine Grammatik G. (a) ƒ & )2 s mš w w - Œx z o xuž/ Idee: Nxz B4 : w (~ s w 4 w ~ yxz (~ s w w (~ Grammatik: G = (T, N, P, S) mit T = ) a, b / N = ) S, A / P = ) (S, asa), (S, aaa), (A, baa),(a, (b) ƒ & )2 mš w s w "#B s s o z o0 xz:/ Idee: 4 "? w w 4 s w "# yxz w ~ s w ~ "? w ~ s w ~ "? s0 f xz w ~ s w ~ "? C s w ~ s w ~ "? s CD s Nxz w ~ s w ~ "? s (~ ~ s Mai Sommersemester 2001

9 z z Ž / Algorithmik II Grammatik: G = (T, N, P, S) mit T = ) a, b, c / N = ) S, A, B, C / P = ) (S, AcB), (A, aab), (A, ab), (B, abb), (B, C), (C, bca), (C, ba) / (c) ƒ & )+ u )2 o0s / 1 o mš š mod, also die Menge aller Wörter über dem Alphabet )2 o0s /, so daß die Anzahl der gerade ist. Idee: Die Grammatik hat zwei nichtterminale Symbole, ein Startsymbol und ein 4. In den Produktionen, die von nach 4 bzw. von 4 nach überführen, wird jeweils ein eingeführt. Somit ist in jeder Folge von terminalen und nichtterminalen Symbolen (in jedem u yœ, wobei œi& nž Pq ) entweder ein enthalten dann ist die Anzahl der s gerade oder ein 4, dann ist sie ungerade. Formal ausgedrückt: Sei u yœ mit 1 fÿ n 1 & mod & `4 pˆ mod Grammatik: G = (T, N, P, S) mit T = ) a, b / N = ) S, A / P = ) (S, ), (S, bs), (S, aa), (A, ba), (A, as) / Rechnerübung 2 static a) In der Rechnerübung 1 wurde zur Berechnung des ggt ein Objekt des Typs Ggt erzeugt und auf diesem die Methode ggtrekursiv bzw. ggtiterativ mit den entsprechenden Parametern aufgerufen. Schreiben Sie nun die Klasse Ggt so um, daß die Berechnung des ggt zweier Zahlen ermöglicht wird, ohne ein Objekt des Typs Ggt erzeugen zu müssen. Realisieren Sie dies durch Verwendung des Schlüsselwortes static. Die Methode ggtrekursiv muß static werden. public static int ggtrekursiv (int a, int b)... Der Aufruf von ggtrekursiv erfolgt dann mit Ggt.ggtIterativ(zahl1, zahl2) Mai Sommersemester 2001

10 b) Schreiben Sie eine Klasse MeineKlasse, die intern mitzählt, wie viele Objekte dieser Klasse erzeugt wurden. Weiterhin soll diese Klasse eine Methode anzahlobjekte() besitzen, die die Anzahl der bisher erzeugten Objekte dieses Typs ausgibt. Testen Sie die Implementierung anhand von Beispielen. public class MeineKlasse private static int anzahlobjerzeugt = 0; MeineKlasse() // jedes Mal wenn ein Objekt erzeugt wird, // wird die Klassenvariable inkrementiert anzahlobjerzeugt++; public static int anzahlobjekteerzeugt () return anzahlobjerzeugt; public static void main (String[] args) MeineKlasse k1 = new MeineKlasse(); MeineKlasse k2 = new MeineKlasse(); System.out.println ("Anzahl Objekte erzeugt: " + MeineKlasse.anzahlObjekteErzeugt() ); Rechnerübung 3 Polymorphismus Schreiben Sie ein Programm, das Ihnen auf Tastendruck zufällig eines der zwei geometrischen Objekte Circle oder Square zufälliger Größe (Radius bzw. Kantenlänge) erzeugt und die Fläche sowie den Namen des Objektes auf dem Bildschirm ausgibt. Verwenden Sie dazu eine abstrakte Basisklasse GeomObject und leiten sie davon zwei Klassen mit den genannten geometrischen Objekten ab. Die Klasse GeomObject soll die Methoden String getname() und double getarea() besitzen. Zum Erzeugen von geometrischen Objekten soll eine Klasse GeomObjectGenerator die statische Methode GeomObject.generateObject() zur Verfügung stellen, die zufällig ein 3 z, Sei- Objekt der Klasse Circle oder Square mit zufälliger Größe (Radius zwischen z-3.z und tenlänge zwischen z-3.z und Žz-3 z ) erzeugt. import java.io.*; import java.util.*; Mai Sommersemester 2001

11 abstract class GeomObject protected String name; public String getname() return name; abstract double getarea(); class Circle extends GeomObject double radius; Circle (double r) radius = r; name = new String("Circle"); public double getarea() return radius * radius * Math.PI; class Square extends GeomObject double edge; Square (double l) edge = l;; name = new String("Square"); public double getarea() return edge * edge; class GeomObjectGenerator static GeomObject generateobject() if(math.random() < 0.5) return new Circle(Math.random() * 5.0); else return new Square(Math.random() * 10.0); Mai Sommersemester 2001

12 public static void main(string args[]) String input = null; BufferedReader console = new BufferedReader( new InputStreamReader(System.in) ); do // ein neues geometrischen Objekt holen GeomObject neu = GeomObjectGenerator.generateObject(); System.out.println("Type: " + neu.getname()); System.out.println("Area: " + neu.getarea() + "\n"); // "readline" muß in einen try-catch-block gefasst werden try input = console.readline(); catch (IOException e) ; // so lange wiederholen bis "q" eingegeben wurde while(!input.equals("q")); Mai Sommersemester 2001

Kapitel 2. Methoden zur Beschreibung von Syntax

Kapitel 2. Methoden zur Beschreibung von Syntax 1 Kapitel 2 Methoden zur Beschreibung von Syntax Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt 2 Ziele Zwei Standards zur Definition der Syntax von

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

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

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen. 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

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

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

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

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

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

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

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

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

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

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

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

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

Mehr

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

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

Mehr

Alphabet, formale Sprache

Alphabet, formale Sprache n Alphabet Alphabet, formale Sprache l nichtleere endliche Menge von Zeichen ( Buchstaben, Symbole) n Wort über einem Alphabet l endliche Folge von Buchstaben, die auch leer sein kann ( ε leere Wort) l

Mehr

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass: OOP (Java), 3. Syntaxdiagramme und Grammatikregeln 1/32 Objektorientierte Programmierung Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass Martin-Luther-Universität Halle-Wittenberg

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

7. Formale Sprachen und Grammatiken

7. Formale Sprachen und Grammatiken 7. Formale Sprachen und Grammatiken Computer verwenden zur Verarbeitung von Daten und Informationen künstliche, formale Sprachen (Maschinenspr., Assemblerspachen, Programmierspr., Datenbankspr., Wissensrepräsentationsspr.,...)

Mehr

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

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

Mehr

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

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

Programmieren I. Formale Sprachen. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Formale Sprachen. www.kit.edu. Institut für Angewandte Informatik Programmieren I Formale Sprachen KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Formale Sprachen: Allgemeines Sprachen werden

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 für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel

Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel Java für Anfänger Teil 2: Java-Syntax Programmierkurs 11.-15.10.2010 Manfred Jackel 1 Syntax für die Sprache Java public class Welcome { } Schlüsselworte Reservierte Worte Keywords Wortsymbol Syntax: griech.

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

Mehr

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

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

Mehr

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

Grundlagen Programmierung

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

Mehr

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

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

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

Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel

Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel Java für Anfänger Teil 2: Java-Syntax Programmierkurs 06.-10.10.2008 Manfred Jackel 1 Syntax für die Sprache Java public class Welcome { } Schlüsselworte Reservierte Worte Keywords Wortsymbol Syntax: griech.

Mehr

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Die Regeln zur Bildung korrekter Wörter einer Sprache kann man in einer natürlichen Sprache formulieren. Da dies jedoch wieder Mehrdeutigkeiten mit

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

Klassenattribute und -methoden, Vererbung

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

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 8: kontextfreie Grammatiken Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/37 Überblick Kontextfreie Grammatiken

Mehr

1 Syntax von Programmiersprachen

1 Syntax von Programmiersprachen 1 Syntax von Programmiersprachen Syntax ( Lehre vom Satzbau ): formale Beschreibung des Aufbaus der Worte und Sätze, die zu einer Sprache gehören; im Falle einer Programmier-Sprache Festlegung, wie Programme

Mehr

Kapitel 19: Klassen und Unterklassen

Kapitel 19: Klassen und Unterklassen Kapitel 19: Klassen und Unterklassen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter

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

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

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

Mehr

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

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

Mehr

Informatik I WS 07/08 Tutorium 24

Informatik I WS 07/08 Tutorium 24 Info I Tutorium 24 Informatik I WS 07/08 Tutorium 24 20.12.07 Bastian Molkenthin E-Mail: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Rückblick Semi-Thue-Systeme Ein Semi-Thue-System besteht

Mehr

Funktionale Programmierung mit Haskell

Funktionale Programmierung mit Haskell Funktionale Programmierung mit Haskell Prof. Dr. Hans J. Schneider Lehrstuhl für Programmiersprachen und Programmiermethodik Friedrich-Alexander-Universität Erlangen-Nürnberg Sommersemester 2011 I. Die

Mehr

5 Projekt Bankverwaltung

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

Mehr

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

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

Mehr

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

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

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 1 Objektorientierte Programmierung If programming in PASCAL is like put in a straightjacket, then programming in C is like playing with

Mehr

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation

Mehr

Kapitel 2. Methoden zur Beschreibung von Syntax

Kapitel 2. Methoden zur Beschreibung von Syntax 1 Kapitel 2 Methoden zur Beschreibung von Syntax Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt 2 Ziele Zwei Standards zur Definition der Syntax von

Mehr

Sprachbeschreibung und Erweiterung

Sprachbeschreibung und Erweiterung Sprachbeschreibung und Erweiterung Worte, Sprachen, reguläre Ausdrücke, Automaten, BNF, Grammatik, Syntax- Diagramme, Spracherweiterungen do, for, break, switch Formale Beschreibung von Programmiersprachen

Mehr

Klassen und Unterklassen

Klassen und Unterklassen Klassen und Unterklassen Klassenfelder, Klassenmethoden, Unterklassen/Erweiterung, Benutzung, Vererbung, super, over-riding, Systemklassen, Pakete, Applets Klassenfelder Manche Felder müssen nicht in jedem

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch

Mehr

Übungsblatt 3: Algorithmen in Java & Grammatiken

Übungsblatt 3: Algorithmen in Java & Grammatiken Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015

Mehr

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

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

Mehr

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

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

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

Formale Sprachen, reguläre und kontextfreie Grammatiken

Formale Sprachen, reguläre und kontextfreie Grammatiken Formale Sprachen, reguläre und kontextfreie Grammatiken Alphabet A: endliche Menge von Zeichen Wort über A: endliche Folge von Zeichen aus A A : volle Sprache über A: Menge der A-Worte formale Sprache

Mehr

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

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Rekursion Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Aufgabe 1: Potenzfunktion Schreiben Sie eine Methode, die

Mehr

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

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

Mehr

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

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

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

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

Mehr

Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen

Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen Einleitende Bemerkungen Einleitende Bemerkungen Ideen hinter der objektorientierten Programmierung Objekte (/* Instanzen einer Klasse */) im Mittelpunkt Objekte bilden Einheit aus Daten (/* Attributen,

Mehr

Binärbäume. Prof. Dr. E. Ehses, 2014 1

Binärbäume. Prof. Dr. E. Ehses, 2014 1 Binärbäume Grundbegriffe der Graphentheorie Bäume und Ihre Anwendungen Unterschiedliche Darstellungen von Bäumen und Binärbäumen Binärbäume in Java Rekursive Traversierung von Binärbäumen Ebenenweise Traversierung

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

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

Mehr

1. Der Einstieg in Java. Was heißt Programmieren?

1. Der Einstieg in Java. Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung

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

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

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

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

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Formale Sprachen und Grammatiken

Formale Sprachen und Grammatiken Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax

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 Rückblick Datentypen (int, long, double, boolean, String) Variablen und Variablendeklarationen

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

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

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

von Anja Austermann Drag and Drop

von Anja Austermann Drag and Drop von Anja Austermann Drag and Drop »Drag and Drop«ist die Bezeichnung für den Datentransfer zwischen unterschiedlichen Anwendungen mit grafischer Benutzeroberfläche. Zur Zeit arbeitet Drag and Drop in Java

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

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des

Mehr

Objekt-Orientierte Programmierung

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

Mehr

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

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation zwischen

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

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

Einfache Rechenstrukturen und Kontrollfluss II

Einfache Rechenstrukturen und Kontrollfluss II Einfache Rechenstrukturen und Kontrollfluss II Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.informatik.uni-muenchen.de/lehre/ss06/infoii/ SS 06 Ziele Lernen imperative

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

Java - Programmierung - Objektorientierte Programmierung 1

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

Mehr

Erste Schritte in Java

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

Mehr

JAVA - Methoden

JAVA - Methoden Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 sind eine Zusammenfassung von Deklarationen und Anweisungen haben einen Namen und können

Mehr

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

Teil 1: Grundeigenschaften von Rechnern und Software

Teil 1: Grundeigenschaften von Rechnern und Software Blatt Nummer: 1 Teil 1: Grundeigenschaften von Rechnern und Software Aufgabe 1.1 [2P] Welcher fundamentale Unterschied besteht zwischen dem Zweck eines Computer von dem Zweck anderer Maschinen (etwa einer

Mehr

Pragmatik von Programmiersprachen

Pragmatik von Programmiersprachen Pragmatik von Programmiersprachen Im Kontext der Notation von Quelltexten Mike Becker, 11. Dezember 2014 Szenario: IT Dienstleister Unternehmen: Produkte: Kunden: IT Dienstleistung Beratung und Software

Mehr

Einführung in die Informatik Grammars & Parsers

Einführung in die Informatik Grammars & Parsers Einführung in die Informatik Grammars & Parsers Grammatiken, Parsen von Texten Wolfram Burgard Cyrill Stachniss 12.1 Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme

Mehr

Einführung in die. objektorientierte Programmierung

Einführung in die. objektorientierte Programmierung Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie

Mehr