Klassen des J ava-hamster-modells

Größe: px
Ab Seite anzeigen:

Download "Klassen des J ava-hamster-modells"

Transkript

1 Anhang A Klassen des J ava-hamster-modells Dieser Anhang enthält eine ausführliche Beschreibung der im Java-Hamster-Modell vordefinierten Klassen. A.l Exception-Klassen Oberklasse aller Exception-Klassen des Java-Hamster-Modells public class HamsterException extends RuntimeException { hamster: der Hamster, der die Exception verschuldet hat public HamsterException(Hamster hamster) liefert den Hamster, der die Exception verschuldet hat public Hamster gethamster() vird gevorfen, venn dem init-befehl ungueltige Werte uebergeben verden public class HamsterInitialisierungsException extends HamsterException { hamster: der Hamster, der die Exception verschuldet hat public HamsterInitialisierungsException(Hamster hamster) vird gevorfen, venn Befehle fuer einen zvar erzeugten aber nicht initialisierten Hamster aufgerufen verden public class HamsterNichtInitialisiertException extends HamsterException { hamster: der Hamster, der die Exception verschuldet hat public HamsterNichtInitialisiertException(Hamster hamster) vird gevorfen, venn fuer einen Hamster, der vor einer Mauer steht, die Methode vor aufgerufen vird public class MauerDaException extends HamsterException { hamster: der Hamster, der die Exception verschuldet hat reihe: die Reihe, in der die Mauer steht

2 522 Kapitel A. Klassen des Java-Hamster-Modells spalte: die Spalte, in der die Mauer steht public MauerDaException(Hamster hamster, int reihe, int spalte) liefert die Reihe, in der die Mauer steht public int getreihe() liefert die Spalte, in der die Mauer steht public int getspalte() wird geworfen, wenn fuer einen Hamster auf einer Kachel ohne Koerner die Methode nimm aufgerufen wird public class KachelLeerException extends HamsterException { hamster: der Hamster, der die Exception verschuldet hat reihe: die Reihe der leeren Kachel spalte: die Spalte der leeren Kachel public KachelLeerException(Hamster hamster, int reihe, int spalte) liefert die Reihe der leeren Kachel public int getreihe() liefert die Spalte der leeren Kachel public int getspalte() wird geworfen, wenn fuer einen Hamster ohne Koerner im Maul die Methode gib aufgerufen wird public class MaulLeerException extends HamsterException { hamster: der Hamster, der die Exception verschuldet hat public MaulLeerException(Hamster hamster) A.2 Die Klasse Hamster public class Hamster { die Konstanten repraesentieren die vier Richtungen, in die ein Hamster blicken kann public final static int NORD 0; public final static int OST 1 ; public final static int SUED 2; public final static int WEST 3; zum Erzeugen eines nicht initialisierten Hamsters public Hamster() erzeugt und initialisiert einen Hamster

3 A.2 Die Klasse Hamster 523 reihe: spalte: blickrichtung: die Reihe des Territoriums, in der der Hamster erzeugt wird die Spalte des Territoriums, in der der Hamster erzeugt wird die Richtung, in der der Hamster anfangs schaut (siehe Konstanten) anzahlkoerner: die Anzahl an Koernern, die der Hamster anfangs im Maul hat HamsterlnitialisierungsException: wird geworfen, wenn: - eine Kachel (reihe/spalte) nicht existiert - die Kachel (reihe/spalte) durch eine Mauer blockiert ist - der Wert von blickrichtung nicht zwischen 0 und 3 liegt - der Wert von anzahlkoerner < 0 ist public Hamster(int reihe, int spalte, int blickrichtung, int anzahlkoerner) throws HamsterlnitialisierungsException erzeugt und initialisiert einen Hamster mit den Werten eines bereits existierenden Hamsters hamster: ein bereits existierender Hamster public Hamster(Hamster hamster) Methode zur Initialisierung eines Hamsters reihe: die Reihe des Territoriums, in der der Hamster erzeugt wird spalte: die Spalte des Territoriums, in der der Hamster erzeugt wird blickrichtung: die Richtung, in der der Hamster anfangs schaut (siehe Konstanten) anzahlkoerner: die Anzahl an Koernern, die der Hamster anfangs im Maul hat HamsterlnitialisierungsException: wird geworfen, wenn: - eine Kachel (reihe/spalte) nicht existiert - die Kachel (reihe/spalte) durch eine Mauer blockiert ist - der Wert von blickrichtung nicht zwischen 0 und 3 liegt - der Wert von anzahlkoerner < 0 ist der Aufruf der Methode fuer einen bereits initialisierten Hamster bewirkt nichts public void init(int reihe, int spalte, int blickrichtung, int anzahlkoerner) throws HamsterlnitialisierungsException Der aufgerufene Hamster springt auf die in Blickrichtung vor ihm liegende Kachel. HamsterNichtlnitialisiertException: wird geworfen, wenn der Hamster noch nicht initialisiert worden ist MauerDaException: wird geworfen, wenn die Kachel in Blickrichtung vor dem Hamster durch eine Mauer blockiert ist oder der Hamster in Blickrichtung am Rand des Territoriums steht public void vor() throws HamsterNichtlnitialisiertException, MauerDaException Der aufgerufene Hamster dreht sich linksum. HamsterNichtlnitialisiertException: wird geworfen, wenn der Hamster noch nicht initialisiert worden ist public void linksum() throws HamsterNichtlnitialisiertException

4 524 Kapitel A. Klassen des Java-Hamster-Modells Der aufgerufene Hamster legt ein Korn auf der Kachel ab, auf der er sich gerade befindet. HamsterNichtInitialisiertException: wird geworfen, wenn der Hamster noch nicht initialisiert worden ist MaulLeerException: wird geworfen, wenn der Hamster keine Koerner im Maul hat public void gib() throws HamsterNichtInitialisiertException, MaulLeerException Der aufgerufene Hamster frisst ein Korn auf der Kachel, auf der er sich gerade befindet. HamsterNichtInitialisiertException: wird geworfen, wenn der Hamster noch nicht initialisiert worden ist KachelLeerException: wird geworfen, wenn auf der Kachel, auf der sich der Hamster gerade befindet, kein Korn liegt public void nimm() throws HamsterNichtInitialisiertException, KachelLeerException liefert genau dann true, wenn sich in Blickrichtung vor dem aufgerufenen Hamster keine Mauer befindet (wenn sich der Hamster in Blickrichtung am Rand des Territoriums befindet, wird false geliefert) HamsterNichtInitialisiertException: wird geworfen, wenn der Hamster noch nicht initialisiert worden ist public boolean vornfrei() throws HamsterNichtInitialisiertException liefert genau dann true, wenn der aufgerufene Hamster keine Koerner im / / Maul hat HamsterNichtInitialisiertException: wird geworfen, wenn der Hamster noch nicht initialisiert worden ist public boolean mauileer() throws HamsterNichtInitialisiertException liefert genau dann true, wenn auf der Kachel, auf der sich der aufgerufene Hamster gerade befindet, mindestens ein Korn liegt HamsterNichtInitialisiertException: wird geworfen, wenn der Hamster noch nicht initialisiert worden ist public boolean kornda() throws HamsterNichtInitialisiertException gibt den uebergebenen String auf den Bildschirm aus HamsterNichtInitialisiertException: wird geworfen, wenn der Hamster noch nicht initialisiert worden ist public void schreib(string zeichenkette) throws HamsterNichtInitialisiertException gibt den uebergebenen String auf den Bildschirm aus und fordert den Benutzer auf, einen String einzugeben; der eingegebene String wird als Wert geliefert HamsterNichtInitialisiertException: wird geworfen, wenn der Hamster noch nicht initialisiert worden ist public String lieszeichenkette(string aufforderung) throws HamsterNichtInitialisiertException

5 A.2 Die Klasse Hamster 525 gibt den uebergebenen String auf den Bildschirm aus und fordert den Benutzer auf, eine Zahl einzugeben; die eingegebene Zahl wird als Wert geliefert (wenn der Benutzer eine ungueltige Zahl eingibt, wird der Wert 0 geliefert) HamsterNichtlnitialisiertException: wird geworfen, wenn der Hamster noch nicht initialisiert worden ist public int lieszahl(string aufforderung throws HamsterNichtlnitialisiertException liefert die Reihe der Kachel des Territoriums, auf der sich der aufgerufene Hamster gerade befindet HamsterNichtlnitialisiertException: wird geworfen, wenn der Hamster noch nicht initialisiert worden ist public int getreihe( throws HamsterNichtlnitialisiertException liefert die Spalte der Kachel des Territoriums, auf der sich der aufgerufene Hamster gerade befindet HamsterNichtlnitialisiertException: wird geworfen, wenn der Hamster noch nicht initialisiert worden ist public int getspalte( throws HamsterNichtlnitialisiertException liefert die Blickrichtung, in die der aufgerufene Hamster gerade schaut (gelieferten Werte entsprechen den obigen Konstanten) HamsterNichtlnitialisiertException: wird geworfen, wenn der Hamster noch nicht initialisiert worden ist public int getblickrichtung( throws HamsterNichtlnitialisiertException liefert die Anzahl der Koerner, die der aufgerufene Hamster gerade im / / Maul hat HamsterNichtlnitialisiertException: wird geworfen, wenn der Hamster noch nicht initialisiert worden ist public int getanzahikoerner( throws HamsterNichtlnitialisiertException liefert den Standard-Hamster public static Hamster getstandardhamster( liefert die Gesamtzahl an erzeugten und initialisierten Hamstern im Territorium (inkl. dem Standard-Hamster) public static int getanzahihamster( Methode, die einen Klon des aufgerufenen Hamsters erzeugt und liefert, d.h. die Werte der Attribute des neuen Hamsters sind identisch zu den Werten des aufgerufenen Hamsters. Wenn der aufgerufene Hamster noch nicht initialisiert ist, wird der neu erzeugte Hamster auch nicht initialisiert. (ueberschreibt die entsprechende von der Klasse Object geerbte Methode) protected Object clone(

6 526 Kapitel A. Klassen des Java-Hamster-Modells II Methode, die ueberprueft, ob die Werte der Attribute des aufgerufenen Hamsters II gleich der Attributwerte des uebergebenen Hamsters sind (zwei nicht II initialisierte Hamster sind auch gleich) II hamster: muss ein Objekt der Klasse Hamster oder einer davon abgeleiteten II Klasse sein II (ueberschreibt die entsprechende von der Klasse Object geerbte Methode) public boolean equals(object hamster) II Methode, die eine String-Repraesentation der folgenden Art fuer den II aufgerufenen Hamster liefert: II "Hamster steht auf Kachel (0/0) mit Blickrichtung OST und 2 Koernern im Maul" II Wenn der aufgerufene Hamster noch nicht initialisiert ist, wird II folgender String geliefert: "Hamster ist nicht initialisiert" II (ueberschreibt die entsprechende von der Klasse Object geerbte Methode) public String tostring() A.3 Die Klasse Territorium II repraesentiert das Hamster-Territorium public class Territorium { II es koennen keine Instanzen der Klasse erzeugt werden private Territorium() II liefert die Anzahl an Reihen im Territorium public static int getanzahlreihen() II liefert die Anzahl an Spalten im Territorium public static int getanzahlspalten() II ueberprueft, ob sich auf der Kachel (reihe/spalte) eine Mauer befindet; II es wird genau dann true geliefert, wenn sich auf der angegebenen Kachel II eine Mauer befindet oder wenn sich die angegebenen Werte ausserhalb II des Territoriums befinden public static boolean mauerda(int reihe, int spalte) II liefert die Gesamtzahl an Koernern, die im Territorium auf Kacheln herumliegen public static int getanzahlkoerner() II liefert die Anzahl an Koernern auf der Kachel (reihe/spalte) oder 0, II falls die Kachel nicht existiert oder durch eine Mauer blockiert ist public static int getanzahlkoerner(int reihe, int spalte) II liefert die Gesamtzahl an erzeugten und initialisierten Hamstern im II Territorium (inkl. dem Standard-Hamster) public static int getanzahlhamster() II liefert alle erzeugten und initialisierten Hamster im II Territorium (inkl. dem Standard-Hamster) public static Hamster[] gethamster()

7 A.3 Die Klasse Territorium 527 liefert die Anzahl an Hamstern auf der Kachel (reihe/spalte) oder 0, falls die Kachel nicht existiert oder durch eine Mauer blockiert ist public static int getanzahlhamster(int reihe, int spalte) liefert alle erzeugten und initialisierten Hamster, die aktuell auf der Kachel (reihe/spalte) stehen (inkl. dem Standard-Hamster) public static Hamster[] gethamster(int reihe, int spalte)

8 Literaturverzeichnis [Bal99] [BalOO] [Bo102] Heide Balzert: Lehrbuch der Objektmodellierung. Spektrum Akademischer Verlag, Helmut Balzert: Lehrbuch der Softwaretechnik. Spektrum Akademischer Verlag, Dietrich Boles: Programmieren spielend gelernt mit dem Java-Hamster Modell. Teubner, [GHJV01] Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides: Entwurfsmuster. Elemente wiederverwendbarer objektorientierter Software. Addison-Wesley, [GWM01] Joachim Goll, Cornelia Weiß und Frank Müller: Java als erste Programmiersprache. Vom Einsteiger zum Profi. Teubner, [Kru03] Guido Krüger: Handbuch der Java-Programmierung. Addison-Wesley, 2003.

9 Index <ohne>, 430, Gewinnt, 145, 505 Ableiten, 160, 250, 293 abstract, 334, 346 abstrakte Klasse, 333, 358 abstrakte Methode, 334 Addition, 38 Alapo, 509 Algorithmus, 15, 517 AllroundHamster, 179 Alternativanweisung, 32 Analyse objektorientierte, 518 Anführungszeichen, 265 anonymes Paket, 429, 443 Anweisung, 27, 31, 32, 35 elementare, 27 zusammengesetzte, 31, 32 Anweisungssequenz, 27, 28, 31 anzahlhamster, 128 anzahlkoerner, 77, 82 Applet, 19, 517 Arra~ 200, 201, 253, 259 mehrdimensionales, 222 Array-Variable, 201, 210 ArraylndexOutOffioundsException 406 Attribut, 47, 77, 91, 94, 98, 119, 125, 126, 211, 212, 245, 247 Ausdruck, 30, 37, 38, 43, 44, 91, 200 arithmetischer, 37, 39, 41 boolescher, 30-33, 35, 39 Ausgabe, 270 Ausnahmesituation, 383, 387 Auswahlanweisung, 30, 32 Backslash, 265 Bauplan, 245 bedingte Anweisung, 31 Befehl, 26, 28, 29, 76 Bereichskommentar, 27 Betriebssystem, 444 Bewertungsfunktion, 495 Bezeichner, 25, 26, 28, 49 Blickrichtung, 25, 52 blickrichtung, 77 Blockanweisung, 31, 33, 395 boolean, 35, 37, 40, 41, 49, 57, 95, 135 boolesche Funktion, 35 Bottom-Up-Entwurf, 518 Bubblesort, 219, 237, 366 C, 17, 201 C++, 17, 201 catch, 395 catch-handler, 385, Checked-Exception, 404 class, 77, 90, 177, 346 ClassCastException, 406 CLASSPATH, 444 clone, 305 Compiler, 19, , 293, 352, 444 Copy-Konstruktor, 124, 306,,,,,, Damenproblem, 240 Datei, 100, 102, 125, 128, 183, 430, 438 Datenkapselung, 93, 450 Datenstruktur, 259 Datentyp, 37, 41, 49, 57, 60, 91, 201, 265 Debugger, 19 Default-Wert, 61, 91, 206 delete, 203 Dereferenzierung, 201 Dialogbox, 270, 273 Disjunktion, 31 Division, 38 do, 33 do-anweisung,33 do-schleife, 33, 207 Dokumentation, 27 Dualzahl, 184

10 532 Index dynamisches Binden, 298, 333, 345, 349, 352 EBNF, 203, 207 Editor, 19 Eiffel, 17 Eingabe, 273 Element, 201 else, 32 Entwurf objektorientierter, 518 Entwurfsmuster, 519 equals, 269, 270, 305 Erbe, 159 Erweiterbarkeit, 17, 303, 304, 345 Exception, 383, 444 Klasse, 169, 383, 387, 404 extends, 91, 159, 164, 246, 250, 347 false, 30 false- Anweisung, 32 fangen, 393 Fehler, 381, 387 Fehlerklasse, 383, 387 Fehlerobjekt, 383, 388 Fehlertyp, 389 final, 138, 177 finally, 401 finally-anweisung, 401 finally-block, 401 far-schleife, 207 Framework, 345 Funktion, 43, 61, 63, 77 Gültigkeitsbereich, 41 rekursive, 45, 119 Funktionsaufruf, 35, 43, 44, 62 Funktionskopf, 35 Funktionsname, 35, 41 Funktionsrumpf, 35, 43, 44 Funktionstyp, 92 Funktionswert, 35, 36, 63 Game-of-Life, 239 Garbage-Collector, 203, 216, 247 get-methode, 93, 139, 161, 450 getanzahlhamster, 131 getanzahlkoerner, 56, 76 getanzahlreihen, 134 getanzahlspalten, 134 getblickrichtung, 56, 76 gethamster, 313 getreihe, 56, 76 getspalte, 56, 76 getstandardhamster, 49, 130 gib, 26, 54, 76 Gleichheitsoperator, 39 global, 79 Größergleichoperator, 39 Größeroperator, 39 Gültigkeitsbereich, 39, 58, 64, 79, 92, 209, 398 Hamster, 25, 47, 95, 245 Datentyp, 49, 57, 75 Klasse, 76, 93, 123, 128, 130, 139, 159, 174, 210, 245, 270, 305, 408,443 Typ, 135 Hamster-Aufgabe, 23 Hamster-Befehl, 25, 92 Hamster-Deklaration, 49 Hamster-Deklarationsanweisung, 49, 58 Hamster-Erzeugungsanweisung, 51, 83, 123 Hamster-Initialisierungsbefehl, 52, 83, 123 Hamster-Klasse erweiterte, 90, 98 Hamster-Modell, 18, 23, 24, 406 imperatives, 23, 47 objektorientiertes, 23, 48 Hamster-Name, 49, 58, 80, 221 Hamster-Objekt, 58, 221 Hamster-Programm, 18, 23, 27, 50 objektorientiertes, 98 Hamster-Simulator, 19, 78, 125, 128, 270, 273, 444, 445

11 Index 533 Hamster-Sprache, 18, 23, 514 Hamster-Subobjekt, 135 Hamster-Territorium, 24, 50 Hamster-Variable, 58, 210, 221 Hauptspeicher, 40 Heap, 200, 201, 211 Hexadezimalzahl, 195 if, 31 if-anweisung, 31 implements, 347 import, 440 import-anweisung, 440 Index, 203 init, 52, 76, 83 Initialisierung, 61, 84, 91, 206 Initialisierungsanweisung, 207 Initialisierungsausdruck, 43, 120 Initialisierungswert, 43, 44 Inkrementausdruck, 207 instanceof, 314 Instanz, 76, 83 Instanzattribut, 126, 247, 250 Instanziierung, 83 Instanzmethode, 129,247,301,333, 335 int, 37, 40, 41, 49, 57, 77, 95, 135, 270, 273 int-funktion, 40, 41 int-literal, 37 int-variable, 37 Interface, 345, 358, 431, 436 interface, 346 Internet, 17 Interpreter, 444 Iterationsanweisung, 33, 207 jar-datei, 448 Java, 16-18, 23, 41, 76, 77, 201, 208, 290, 298, 387, 404, 444, 448, 514 Java-Applet, 517 Java-Hamster-Modell, 18 J ava-interpreter, 514 Java-Programm, 514 Kachel, 24 Kalah,467 Klasse, 75, 212, 245 abstrakte, 333, 358 Definition, 430 konkrete, 337 Klassenattribut, 125, 126, 128, 131, 138, 176, 247, 250 Klassenbibliothek, 19, 516 Klassendatentyp, 57, 75, 91, 95, 246, 310 Klassendefinition, 77 Klassenelement, 431 Klassenkopf, 77, 91, 246, 347 Klassenmethode, 128, 131, 247, 335 Klassenname, 77, 91, 95, 246 vollständiger, 439 Klassenrumpf, 77, 79, 91, 93, 247 Kleinergleichoperator, 39 Kleineroperator, 39 Kommentar, 27 Komponente, 201 Konjunktion, 31 konkrete Klasse, 337 Konstante, 52, 138, 177, 247 Konstruktor, 119, 121, 171, 174, 247, 251,455 Konvention, 91-93, 139 Koordinatensystem, 50 Korn, 24 kornda, 30, 54, 76 Laufzeit, 40, 79, 80, 298 Laufzeitfehler, 26, 50, 53, 58, 205, 247, 293, 295, 296, 381, 382 Lebensdauer, 40, 64, 92, 216 length,213 Lesen, 273 Lexikalik, 25 lies Zahl, 273 lieszeichenkette, 273 linksum, 26, 54, 76 Linux, 444, 445

12 534 Index logischer Fehler, 381 main, 27 main-prozedur, 29 11aschinensprache, 15 11auer, 24 mauerda, aul,25 maulleer, 30, 54, 76, 82 11ehrfachvererbung, 164, ethode, 77, 91, 92, 98, 119, 212, 245, 247, 250 abstrakte, 334 dynamisches Binden, 298 rekursive, ethodenkop~ 92 11ethodenname, 92 11etho denrumpf, 92 11inimax-Algorithmus, odulo,38 11uster, 378 Nachwuchs, 143, 243 Negation, 31 new, 203, 210 nimm, 26, 54, 76 Nimm-Spiel, 321, 341, 352 NORD,52 null, 60, 138, 203, 205, 247 NullPointer Exception, 405 Oberklasse, 160, 250, 333 Object, 308, 444 Klasse, 304 Objekt, 16, 76, 245, 247, 289, 335, 347 Objektvariable, 58, 210, 247, 289, 293, 335, 347, 389 polymorphe, 289 OK-Button, 270 Oktalzahl, 187 Operator, 31 arithmetischer, 38, 39 Ordner, 100, 438, 444 OST, 52 Othello, 506 package, 429, 437 package-anweisung, 437 Paket, 429, 430, 437, 444, 447 anonymes, 429, 443, 445 Parameter, 43, 62, 293 aktueller, 43, 44, 62 formaler, 43, 44, 62, 81, 395 Parameterdeklaration, 43 Parameter liste aktuelle, 43, 44 formale, 43, 44 Parametervariable, 43 Parameterübergabe, 44, 62, 214 passen, 399 Pattern, 378 Polymorphie, 95, 178, 290, 333, 345, 352, 398 Priorität, 38, 39 private, 77, 161, 163, 430, 432 Produkt, 38 Programm, 15, 41 Programmieren im Großen, 518 Programmieren im Kleinen, 517 Programmierer, 24 Programmierparadigma, 16 Programmiersprache, 15 funktionale, 16 imperative, 16 objektorientierte, 16 prädikative, 16 regelbasierte, 16 Programmierung, 15, 23 imperative, 23, 199, 212, 265 objektorientierte, 16, 58, 82, 93, 178, 448, 450, 518 protected, 430, 432 Protokoll, 292, 348 Protokolleinschränkung, 293 Prozedur, 28, 35, 41 prozedurale Zerlegung, 517 Prozeduraufruf, 29

13 Index 535 Prozedurdefinition, 28 Prozedurkopf, 28 Prozedurname, 28 Prozedurrumpf, 28 Prozessor, 25 public, 77, 92,167,266,346,348,430, 432 Punkt, 50, 52, 54, 78 Punktnotation, 82, 211 Quelleode, 25 Quicksort, 220, 366 r-koordinate, 50, 52 Rahmenwerk, 345, 361, 459 random, 143 Record, 212 Referenz, 201, 210, 211, 215 Referenzdatentyp, 210 Referenzvariable, 210 Reihe, 50 reihe, 77 Rekursion, 45 Restbildung, 38 return, 35 return-anweisung, 29, 41, 383, 389 boolesche, 35 Reversi, 506 RuntimeException, 404, 444 s-koordinate, 50, 52 Schach, 509 Schleifenbedingung, 33, 207 Schlüsselwort, 26, 27, 77, 80, 90 Schnittstelle, 345 minimale, 448 schreib, 270 Schreiben, 270 Schrägstrich, 265 Seiteneffekt, 41 Semikolon, 335, 346 set-methode, 93, 139, 451 Signatur, 168, 391 Simula,17 Singleton-Muster, 455 Smalltalk, 17 Softwareengineering, 518 Softwareentwicklungsmethode, 518 Sortieralgorithmus, 219, 220, 366 Sourcecode, 303 Spalte, 50 spalte, 77 Speicher, 83, 84, 98 Speicheradresse, 201, 210, 216 Speicherklasse, 516 Speicherplatz, 91, 122, 200, 203, 211 Spielbaum, 494 Stack, 200 Stammbaum, 163 Standard-Hamster, 48, 49, 95, 130 Standarddatentyp, 57, 310 Stapel, 259, 308 static, 125, 128 String, 265, 444 Klasse, 266 Stringliteral, 265 Stringobjekt, 266 Stringobjektvariable, 266 Struktur, 212 Sub-Hamster, 135 Subobjekt, 135 exklusives, 136 nicht-exklusives, 138 Subtraktion, 38 Subtyp, 160 SUED, 52 super, 164, 167, 171, 172 super-konstrukt, 172 Super hirn, 278 Syntaxfehler, 381 Tastatur, 273 Territorium Klasse, 131, 312, 443, 454 Testbefehl, 30, 35 Texteingabefeld, 273 this, 80, 164

14 536 Index throw, 383, 389 throw-anweisung,389 Throwable, 387 throws,389 Token,25 Top-Down-Entwurf, 517 tostring, 305 Thennzeichen, 25 true,30 true-anweisung, 31 try, 385, 395 try-anweisung, 385, 393, 395 try-block, 385, 395 Typ, 44, 346, 394 Typecast, 295, 349, 406 Typkonformität, 44 Typumwandlung explizite, 295, 308 Überladen, 44, 117, 168, 251, 306 Überschreiben, 165, 166, 168, 251, 298, 306, 391, 433 Umgebungsvariable, 444 UML,519 Unchecked-Exception,404 Ungleichheitsoperator, 39 Unicode,25 Unix, 444, 445 Unterklasse, 160, 290 direkte, 163 indirekte, 163 Variable, 37, 43, 77, 91, 94 globale, 39, 40 lokale, 39, 40, 43, 44, 62 methodenlokale, 94 Variablendefinition, 43 Verbund, 212 Vererbung, 159, 178, 249 Vergleichsausdruck, 39 Vergleichsoperator, 61, 269 verkettete Liste, 256 Vertretungshamster, 95, 175 Verzeichnis, 183 void, 27, 28, 35, 41 vollständiger Klassenname, 439 vor, 26, 54, 76, 78 vornfrei, 30, 54, 76 Vorschrift, 352 Vorteil, 16 WEST, 52 while, 32, 33 while-schleife, 207, 208 Wiederverwendbarkeit, 17, 102, 307 Windows, 444, 445 Zeichenkette, 265 Zeilenkommentar, 27 Zeilenumbruch, 271 Zufallszahl, 143, 516 ZugrifIsrecht, 77, 93, 161, 167, 430 Zustand, 77 Zuweisung, 38, 58 Zuweisungsanweisung, 38, 58 Zuweisungsoperator, 38, 39 Zwei-Spieler-Strategiespiel, 467

A.1 Exception-Klassen

A.1 Exception-Klassen A. Dieser Anhang enthält eine ausführliche Beschreibung der im Java-Hamster-Modell vordefinierten Klassen. Kümmern Sie sich nicht um das verwendete Schlüsselwort synchronized. Dieses bekommt erst bei der

Mehr

Inhaltsverzeichnis. 4.9 Aufgaben... 63

Inhaltsverzeichnis. 4.9 Aufgaben... 63 Inhaltsverzeichnis 1 Einleitung 1 1.1 Programmierung... 1 1.2 Objektorientierte Programmierung... 2 1.3 Voraussetzungen und Ziele dieses Buches... 3 1.4 Aufbau dieses Buches... 4 2 Das imperative Hamster-Modell

Mehr

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH 1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch

Mehr

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

1 Aufgaben 1.1 Objektorientiert: (extended-hamster) Sammel-Hamster 1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster Aufgabe: Bearbeitungszeit: ca. 1/4 Std) Schreiben Sie ein "objektorientiertes" Programm ("CuB_05_1") für das Sammeln der Körner. Aufgabenbeschreibung:

Mehr

2.1 Komponenten des Hamster-Modells

2.1 Komponenten des Hamster-Modells 2. Computer können heutzutage zum Lösen vielfältiger Aufgaben genutzt werden. Die Arbeitsanleitungen zum Bearbeiten der Aufgaben werden ihnen in Form von Programmen mitgeteilt. Diese Programme, die von

Mehr

Benutzungshandbuch. Hamster-Simulator-Light

Benutzungshandbuch. Hamster-Simulator-Light Benutzungshandbuch Hamster-Simulator-Light Version 1.0 (21.09.2009) Dietrich Boles Universität Oldenburg 2 Inhaltsverzeichnis 1 Einleitung... 9 1.1 Das Hamster-Modell... 9 1.2 Der Hamster-Simulator...

Mehr

Dr. Dietrich Boles. Programmierkurs Java. Teil. Objektorientierte Programmierung. Unterrichtseinheit 20. (Hamster-) Objekte

Dr. Dietrich Boles. Programmierkurs Java. Teil. Objektorientierte Programmierung. Unterrichtseinheit 20. (Hamster-) Objekte Programmierkurs Java Teil Objektorientierte Programmierung Unterrichtseinheit 20 (Hamster-) Objekte Dr. Dietrich Boles Programmierkurs Java UE 20 (Hamster-) Objekte Dietrich Boles Seite 1 Gliederung Imperatives

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

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1 Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................

Mehr

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für

Mehr

JAVA-Datentypen und deren Wertebereich

JAVA-Datentypen und deren Wertebereich Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil IV Einführung in die Programmierung - II Michael Roth

Mehr

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

C.1 Klasse SHamster. public class SHamster extends Hamster { private Hamster shamster;

C.1 Klasse SHamster. public class SHamster extends Hamster { private Hamster shamster; C. Sicher hat es Sie bisher auch schon oft geärgert, dass der Standard-Hamster immer vom Typ Hamster und nicht vom Typ einer erweiterten Hamster-Klasse ist und man für ihn keine neu definierten Befehle

Mehr

Programmieren in Java

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

Mehr

Gliederung der Folien

Gliederung der Folien 1 Gliederung der Folien 1. Einführung 1.1. Gliederung 1.2. Literatur 1.3. Einstieg in Java 1.3.1. Geschichte von Java 1.3.2. Hello World 1.3.3. Übersetzen eines Java-Programms 1.4. Die Entwicklungsumgebung

Mehr

II.4.4 Exceptions - 1 -

II.4.4 Exceptions - 1 - n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen

Mehr

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4. ! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.4 Exceptions - 1 - Ausnahmen (Exceptions( Exceptions) Treten auf, wenn zur

Mehr

II.4.4 Exceptions - 1 -

II.4.4 Exceptions - 1 - 1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.4 Exceptions - 1 - Ausnahmen (Exceptions)

Mehr

1. Einführung. Programmieren 1 / Algorithmen und Datenstrukturen. Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Sommersemester 2010

1. Einführung. Programmieren 1 / Algorithmen und Datenstrukturen. Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Sommersemester 2010 1. Einführung Programmieren 1 / Algorithmen und Datenstrukturen Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Sommersemester 2010 1 Prof. Dr. Bernhard Humm, FB Informatik, Hochschule Darmstadt.

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann

Mehr

4. Vererbung Die Klasse Object. Die Klasse Object

4. Vererbung Die Klasse Object. Die Klasse Object 4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige

Mehr

Wo sind wir? Rudolf Berrendorf FH Bonn-Rhein-Sieg Programmiersprache Java 280

Wo sind wir? Rudolf Berrendorf FH Bonn-Rhein-Sieg Programmiersprache Java 280 Wo sind wir? Java-Umgebung Lexikale Konventionen Datentypen Kontrollstrukturen Ausdrücke Klassen, Pakete, Schnittstellen JVM Exceptions Java Klassenbibliotheken Ein-/Ausgabe Collections Threads Applets,

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 (7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik

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

Grundlagen der Modellierung und Programmierung, Übung

Grundlagen der Modellierung und Programmierung, Übung Grundlagen der Modellierung und Programmierung Übung Prof. Wolfram Amme LS Softwaretechnik Prof. Klaus Küspert LS Datenbanksysteme Prof. Birgitta König-Ries LS Verteilte Systeme Prof. Dr. Wilhelm Rossak

Mehr

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1

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

Programmieren in Java

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

Mehr

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

Mehr

Tag 8 Repetitorium Informatik (Java)

Tag 8 Repetitorium Informatik (Java) Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

Mehr

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker Andreas Keese Institut f. Wissenschaftliches Rechnen TU Braunschweig 8. September 2014 Der Text, die Abbildungen und Programme

Mehr

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 Abstrakte Klassen, finale Klassen und Interfaces 12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte

Mehr

Java als erste Programmiersprache

Java als erste Programmiersprache Joachim Göll Cornelia Heinisch Java als erste Programmiersprache Grundkurs für Hochschulen 8., überarbeitete Auflage Springer Vi eweg Inhaltsverzeichnis 1 Grundlagen der Programmierung 1 1.1 Das erste

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

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Teil 9: Ausnahmebehandlung Martin Hofmann Steffen Jost LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 8. Dezember

Mehr

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

Mehr

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]

Mehr

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

Mehr

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

Mehr

Johannes Unterstein - TINF16 - Java - Sommersemester 2017 JAVA. Weiterführende Spracheigenschaften

Johannes Unterstein - TINF16 - Java - Sommersemester 2017 JAVA. Weiterführende Spracheigenschaften JAVA Weiterführende Spracheigenschaften 100 AGENDA Strings Exceptions Enums Generics Lambdas & Methods Bulk-Operations 101 DIE KLASSE STRING Zeichenketten werden in Java als String repräsentiert Wie der

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

Einfache Datentypen in JAVA

Einfache Datentypen in JAVA 5.4.1. Einfache Datentypen in JAVA Ganzzahlige Datentypen byte 8 bits -128

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:

Mehr

Fragenkatalog ESOP WS 16/17

Fragenkatalog ESOP WS 16/17 Fragenkatalog ESOP WS 16/17 1. Einleitung 1.1 Was ist Programmieren? 1.2 Was ist ein Programm? 1.3 Welche Schritte werden bei der Programmerstellung benötigt? 1.4 Was ist ein Algorithmus? 1.5 Was sind

Mehr

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

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

Mehr

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Organisatorisches Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Nächste Woche VO und UE am Dienstag, den 30.10.! UE im CR IL/IT Wissensüberprüfung am Zettel 25.10.2018 IT I - VO 3 1 Organisatorisches

Mehr

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2 iii Inhaltsverzeichnis Kurseinheit 1 1 Von der Aufgabenstellung zum Programm... 1 1.1 Motivation... 1 1.2 Softwareentwicklung... 2 1.3 EXKURS: Unified Modeling Language (UML)... 4 2 Anforderungsanalyse...

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen 5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden

Mehr

Ausnahmebehandlung. Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren. Ausnahmen abfangen. Ausnahmen definieren

Ausnahmebehandlung. Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren. Ausnahmen abfangen. Ausnahmen definieren Ausnahmebehandlung Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren Ausnahmen abfangen Ausnahmen definieren Sinnvolle Verwendung von Ausnahmen Informatik II: Objektorientierte SW-Entwicklung, Algorithmik,

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

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

Mehr

Laufzeitsystem Menge von Hilfsprogrammen, die automatisch zum übersetzten Programm hinzugebunden

Laufzeitsystem Menge von Hilfsprogrammen, die automatisch zum übersetzten Programm hinzugebunden Glossar Glossar Algorithmus Arbeitsanleitung zum Lösen eines Problems bzw. einer Aufgabe, die so präzise formuliert ist, dass sie von einem Computer ausgeführt werden kann. Alternativanweisung Kontrollstruktur

Mehr

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren...

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren... Datei: 5220_A02Inhalt.doc, Seite3 15. September 2010 Teil I Erste Schritte 1 Einleitung.... 9 1.1 Was Sie erwartet und was Sie nicht erwartet.... 9 1.2 Wie die Kapitel aufgebaut sind.... 10 1.3 Beispieldateien....

Mehr

Das Einsteigerseminar Objektorientierte Programmierung in Java

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

Mehr

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

III.1 Prinzipien der funktionalen Programmierung - 1 -

III.1 Prinzipien der funktionalen Programmierung - 1 - 1. Prinzipien der funktionalen Programmierung 2. Deklarationen 3. Ausdrücke 4. Muster (Patterns) 5. Typen und Datenstrukturen 6. Funktionale Programmiertechniken III.1 Prinzipien der funktionalen Programmierung

Mehr

Programmierung Nachklausurtutorium

Programmierung Nachklausurtutorium Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel

Mehr

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

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

Mehr

Tafelübung 07 Algorithmen und Datenstrukturen

Tafelübung 07 Algorithmen und Datenstrukturen Tafelübung 07 Algorithmen und Datenstrukturen Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Vererbung Grundlagen Abstrakte

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 1 - Variablen und Kontrollstrukturen main Methode Startpunkt jeder Java Anwendung String[] args ist ein Array aus Parametern, die beim Aufruf über die Kommandozeile

Mehr

Ausdrücke in Scala. Funktionale Programmierung. Christoph Knabe FB VI

Ausdrücke in Scala. Funktionale Programmierung. Christoph Knabe FB VI Ausdrücke in Scala Funktionale Programmierung Christoph Knabe FB VI 17.10.2014 Inhalt Einfache Ausdrücke Infix-Notation für Methodenaufruf Sonderzeichen in Bezeichnern Schlüsselwörter Konstanten Variablen

Mehr

Programmieren in C+ Einführung in den Sprachstandard C++ Springer-Verlag Berlin Heidelberg New York London Paris Tokyo Hong Kong Barcelona Budapest

Programmieren in C+ Einführung in den Sprachstandard C++ Springer-Verlag Berlin Heidelberg New York London Paris Tokyo Hong Kong Barcelona Budapest Martin Schader Stefan Kuhlins Programmieren in C+ Einführung in den Sprachstandard C++ Zweite, verbesserte und erweiterte Auflage Mit 25 Abbildungen Springer-Verlag Berlin Heidelberg New York London Paris

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

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

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

Mehr

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Dietmar Ratz Jens Scheffler Detlef Seese Grundkurs Programmieren

Mehr

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4 Inhaltsverzeichnis TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA... 1 1 GRUNDLAGEN DER PROGRAMMIERUNG... 4 1.1 Das erste Java-Programm... 4 1.2 Programme und ihre Abläufe... 6 1.3 Entwurf mit Nassi-Shneiderman-Diagrammen...

Mehr

Java Grundlagen 2 - OOP

Java Grundlagen 2 - OOP Institut für Programmierung und Reaktive Systeme Java Grundlagen 2 - OOP Markus Reschke 20.08.2014 Eine kleine Geschichte 1 Spezifikation Es sollen Formen in einer GUI angezeigt werden: Ein Quadrat, ein

Mehr

Objektorientierung (OO)

Objektorientierung (OO) Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members

Mehr

C++ - Objektorientierte Programmierung Konstante und statische Elemente

C++ - Objektorientierte Programmierung Konstante und statische Elemente C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja

Mehr

Einführung in die Programmiersprache Java II

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

Mehr

Umsetzung einer Klassenkarte in einer Programmiersprache

Umsetzung einer Klassenkarte in einer Programmiersprache Klassen in Java Umsetzung einer Klassenkarte in einer Programmiersprache Objektorientierte Programme bestehen (nur) aus Klassendefinitionen In Klassendefinitionen wird die Struktur der Objekte festgelegt,

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute

Mehr

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert

Mehr

Objekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E.

Objekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E. Objekte und Klassen INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? typedef struct Konto { double saldo; int id; Konto; Modul "konto" konto.h konto.c Prozedurale Programmierung:

Mehr

Java als erste. Programmiersprache. Java 2 Plattform. Von Prof. Dr. Joachim Goll Cornelia Weiß Peter Rothländer. 2., durchgesehene Auflage

Java als erste. Programmiersprache. Java 2 Plattform. Von Prof. Dr. Joachim Goll Cornelia Weiß Peter Rothländer. 2., durchgesehene Auflage Java als erste Programmiersprache Java 2 Plattform Von Prof. Dr. Joachim Goll Cornelia Weiß Peter Rothländer 2., durchgesehene Auflage B. G. Teubner Stuttgart Leipzig Wiesbaden 1 GRUNDBEGRIFFE DER PROGRAMMIERUNG

Mehr

Wo sind wir? Übersicht lexikale Struktur von Java

Wo sind wir? Übersicht lexikale Struktur von Java Wo sind wir? Java-Umgebung Lexikale Konventionen Datentypen Kontrollstrukturen Ausdrücke Klassen, Pakete, Schnittstellen JVM Exceptions Java Klassenbibliotheken Ein-/Ausgabe Collections Threads Applets,

Mehr

Propädeutikum Programmierung in der Bioinformatik

Propädeutikum Programmierung in der Bioinformatik Propädeutikum Programmierung in der Bioinformatik Java Klassen und Objekte Thomas Mauermeier 27.11.2018 Ludwig-Maximilians-Universität München Rückblick Imperative Programmierung Variablen Fallunterscheidungen

Mehr

Grundlagen der Fehlerbehandlung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java.

Grundlagen der Fehlerbehandlung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java. Universität Osnabrück 1 Grundlagen der Fehlerbehandlung 3 - Objektorientierte Programmierung in Java Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java SS 2006 Prof. Dr. F.M. Thiesing, FH Osnabrück Wenn

Mehr

Praktische Informatik 1

Praktische Informatik 1 Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Was bisher geschah... Konzepte: Klassen und ihre...... Instanzen, die

Mehr

C++ - Objektorientierte Programmierung Polymorphie

C++ - Objektorientierte Programmierung Polymorphie C++ - Objektorientierte Programmierung Polymorphie hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen C++ - Objektorientierte Programmierung 21.06.16 Seite 1 Polymorphie

Mehr

Überblick und Wiederholung

Überblick und Wiederholung Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Klausurinformationen 6 ECTS: Klausur 11.2.2012 9:00

Mehr

Überblick und Wiederholung

Überblick und Wiederholung Annabelle Klarl Zentralübung zur Vorlesung : http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Klausurinformationen 6 ECTS: Klausur 09.02.2013 14:00 16:00 Uhr Bearbeitungszeit: 120 min. Raum:

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 09:00-10:30 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Linux, OS X Freitag: http://hhu-fscs.de/linux-install-party/

Mehr

1. Abstrakte Klassen

1. Abstrakte Klassen 1. Abstrakte Klassen Lernziele 1. Abstrakte Klassen Lernziele: Das Konzept abstrakter Klassen und abstrakter Methoden kennen und verstehen, in der Lage sein, abstrakte Klassen und Methoden in Java zu formulieren,

Mehr

Die abstrakte Klasse Expression:

Die abstrakte Klasse Expression: Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const 501 Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const Leider (zum Glück?) lässt sich nicht die

Mehr

Informatik II Übung 6

Informatik II Übung 6 Informatik II Übung 6 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 11.4.2018 Carina Fuss 11.4.2018 1 Übung 6 Nachbesprechung Übung 5 Objektorientierung Vererbung, Polymorphie, abstrakte Klassen, Interfaces,

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

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

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung 2 Einordnung in den Softwareentwicklungsprozess Softwareentwicklung mit JAVA Planung Entwurf Programmierung Test/Evaluation/Pflege

Mehr

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

Objektorientierte Programmierung in Java

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

Mehr