1 / 302

Informatik 2 Einführung in Java und UML

Informatik 2 Einführung in Java und UML. Prof. Dr.-Ing. Holger Vogelsang holger.vogelsang@hs-karlsruhe.de. Inhaltsverzeichnis. Roter Faden (4) Übersicht (6) Übersicht: (12) Übersicht (13) Arbeitsschritte und Software (17) Imperative Aspekte (37) Klassen und Objekte (50)

eve
Download Presentation

Informatik 2 Einführung in Java und UML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Informatik 2Einführung in Java und UML Prof. Dr.-Ing. Holger Vogelsang holger.vogelsang@hs-karlsruhe.de

  2. Inhaltsverzeichnis • Roter Faden (4) • Übersicht (6) • Übersicht: (12) • Übersicht (13) • Arbeitsschritte und Software (17) • Imperative Aspekte (37) • Klassen und Objekte (50) • Fehlererkennung (92) • Zusicherungen (99) • Klassen und Objekte (112) • Überladen von Methoden (122) • Vererbung (127) • Überschreiben von Methoden (162) • Vererbung (189) • Generische Klassen (199) Informatik 2 - Einführung in Java und UML

  3. Inhaltsverzeichnis • Generische Methoden (211) • Aufzähltypen (216) • Regeln und Hinweise (222) • Klassendiagramme (234) • Fehlerbehandlung mit Ausnahmen (269) • Pakete (285) • Funktionale Programmierung (291) Informatik 2 - Einführung in Java und UML

  4. Roter Faden Imperative Aspekte Objekt- orientierung Klassen- diagramme Pakete Funktionale Programmierung Java und UML Schritte, Software Ausnah-men Klassen, Objekte Fehler Überladen Zusicher- ungen Vererbung Über- schreiben Gener. Klassen Aufzähl-typen Regeln Informatik 2 - Einführung in Java und UML

  5. Roter Faden Grafische Oberflä- chen Übersicht Layouts Ereignisse Widgets Zeichen- operationen Grafik- widgets Effekte, Animationen Offene Punkte Daten- strukturen ADTs Datenstrukturen in Java Elementare Datenstrukturen Iteratoren Hash- tabellen Bäume Graphen Typinfo., I/O Annota- tionen Ein-, Ausgabe Laufzeit- typinfo. Entwurf Prinzipien Verbindung von Modulen Spring OSGi Informatik 2 - Einführung in Java und UML

  6. Übersicht Literatur Java • Christian Ullenboom: • „Java ist auch eine Insel“, Galileo Computing(auch frei als „Open-Book“ unter http://openbook.galileocomputing.de/javainsel/) • „Java 7 – Mehr als eine Insel“, Galileo Computing • D. Ratz, J. Scheffler, D. Seese, J. Wiesenberger: „Grundkurs Programmieren in Java“, Hanser-Verlag • R. C. Martin: „Clean Code“, mitp • Cay S. Hortsmann, „Java 8 SE fortheReallyImpatient“, Addison-Wesley Objektorientierung allgemein • B. Lahres, G. Raýman: „Objektorientierte Programmierung“, Galileo Computing (auch frei als „Open-Book“ unter http://openbook.galileocomputing.de/oop/) Konfigurationsmanagement und Build-Systeme • G. Popp: „Konfigurationsmanagement mit Subversion, Maven und Redmine“, dpunkt Informatik 2 - Einführung in Java und UML

  7. Übersicht Literatur UML (Objekt- und Klassendiagramme) • M. Jeckle, C. Rupp, J. Hahn, B. Zengler, S. Queins: „UML 2 - glasklar“, Hanser-Verlag • C. Kecher: „UML 2.0 – Das umfassende Handbuch“, Galileo Computing JavaFX 2 • C. Dea: „JavaFX 2.0: Introduction by Example“, Apress • J. L. Weaver: „Pro JavaFX 2: A Definitive Guide to Rich Clients with Java Technology“, Apress • http://docs.oracle.com/javafx/index.html Datenstrukturen • G. Saake, K. Sattler: „Datenstrukturen und Algorithmen: Eine Einführung mit Java“, dpunkt Spring • C. Walls: „Spring im Einsatz (3. Auflage)“, Hanser-Verlag (deutsch) oder „Spring in Action (Third Edition)“, Manning (englisch) OSGi • B. Weber, P. Baumgartner, O. Braun: „OSGi für Praktiker“, Hanser-Verlag • G. Wütherich, N. Hartmann, B. Kolb, M. Lübken: „Die OSGI Service Platform“, dpunkt Informatik 2 - Einführung in Java und UML

  8. Übersicht Entwicklungsumgebungen IDEs zur Java-Entwicklung • Eclipse: http://www.eclipse.org mit zusätzlichen Plugins: • Findbugs: In Eclipse Help  Eclipse Marketplace, „Findbugs“ im Suchfeld eingeben und „Findbugs Eclipse Plugin” installieren • Checkstyle zur Überprüfung der Code-Konventionen: In Eclipse Help  Eclipse Marketplace, „Checkstyle“ im Suchfeld eingeben und „Checkstyle Plug-in” installieren • SVN Team Provider: In Eclipse Help Eclipse Marketplace, SVN im Suchfeld eingeben und Subversive SVN Team Provider installieren • SVN Connector: In Eclipse Help  Install New Software  Add…  SVN-Connector mit der Update Site http://community.polarion.com/projects/subversive/download/eclipse/3.0/kepler-site/eingeben  OK  Im Baum links SVNKit1.7.10 ImplementationsowieSVN Connectorsauswählen und installieren. • Netbeans: http://www.netbeans.org Informatik 2 - Einführung in Java und UML

  9. Übersicht Entwicklungsumgebungen • IntelliJIDEA • freie Community-Version: http://www.jetbrains.com/idea/ • oder Ultimate Editionmit Lizenz der Hochschule: https://ilias.hs-karlsruhe.de/goto.php?target=crs_99205&client_id=HSKA (Kursbeitritt erforderlich) Informatik 2 - Einführung in Java und UML

  10. Übersicht Modellierungswerkzeuge Leicht verfügbare Modellierungswerkzeuge • Visual Paradigmfor UML • Frei verfügbare Community-Edition • Lizenz für die Professional-Edition im Ilias: https://ilias.hs-karlsruhe.de/repository.php?ref_id=32415&cmd=&rep_frame=1 • Download http://www.visual-paradigm.com/ • keine Code-Erzeugung in der Community-Edition • UML Lab • Kostenlose Studentenlizenz unterhttp://www.uml-lab.com/de/uml-lab/academic/ • ArgoUML • Open Source, nur UML 1.4 • http://argouml.tigris.org/ • Start ohne lokale Installation: http://argouml-downloads.tigris.org/jws/argouml-latest-stable.jnlp • Code-Erzeugung für Java, C++, PHP, … Informatik 2 - Einführung in Java und UML

  11. Übersicht Modellierungswerkzeuge • Magicdraw • Frei verfügbare Community-Edition • http://www.magicdraw.com/ • Code-Erzeugung für C++, C# und Java (nicht Community-Edition) • eUML • Auch als Open Source verfügbar, Eclipse-Plugin • http://www.soyatec.com/euml2/installation/ • Code-Erzeugung nur für Java • Borland Together • http://www.borland.com/us/products/together/index.html • Lizenz bei Frau Knodel in LI 136 • Fujaba • Open Source • http://www.fujaba.de/ • Code-Erzeugung nur für Java Informatik 2 - Einführung in Java und UML

  12. Übersicht: Änderungen zum Wintersemester 2013/2014 • Streichungen einiger Inhalte aus „Informatik 1“ • kleinere Anpassungen • Änderung der Reihenfolgen • Neu aus Java 8: • Schnittstellen • funktionale Programmierung • Bearbeitung von Datenstrukturen mit Streams Informatik 2 - Einführung in Java und UML

  13. Übersicht Hinweise Markierungen • Expertenkapitel (nicht klausurrelevant): • Tafel-/ Rechnerübungen: Längeres Beispiel: • Pacman-Beispiel: Informatik 2 - Einführung in Java und UML

  14. Übersicht Historie im Informatikstudium • Bekannt sind aus „Informatik 1“: • Datentypen • Prozedurale Elemente • einfache Klassen • Arrays • Algorithmen zum Suchen und Sortieren • Klassen in UML Informatik 2 - Einführung in Java und UML

  15. Übersicht Durchgängiges Beispiel: Pacman-Klon • Java und die Datenstrukturen werden anhand eines kleinen Spielfragmentes erläutert, einer Variation von Pacman: • nur einen Level • verändertes Spielfeld • andere Punktezählung • veränderter interner Aufbau, um alle wichtigen Techniken zeigen zu können • fehlende Spielelemente des Originals • teilweises anderes Verhalten der Figuren • Vektor- statt Pixelgrafik • plattformunabhängige Implementierung mit JavaFX Informatik 2 - Einführung in Java und UML

  16. Übersicht Durchgängiges Beispiel: Pacman-Klon • Spielfeld: • Spielende: Pacman wurde von einem Geist gefressen, oder alle Essensrationen sind von Pacman gefressen worden. Kirsche (Geister werden für eine gewisse Zeit ungefährlich und können gefressen werden) Tor zur anderen Seite Geist Essen Pacman Informatik 2 - Einführung in Java und UML

  17. Arbeitsschritte und SoftwareÜbersicht Imperative Aspekte Objekt- orientierung Klassen- diagramme Pakete Funktionale Programmierung Java und UML Schritte, Software Ausnah-men Klassen, Objekte Fehler Überladen Zusicher- ungen Vererbung Über- schreiben Gener. Klassen Aufzähl-typen Regeln Informatik 2 - Einführung in Java und UML

  18. Arbeitsschritte und Software Motivation • Bekannt aus Informatik 1: Schreiben einfacher Java-Programme • Wie kann der Quelltext verwaltet werden? Informatik 2 - Einführung in Java und UML

  19. Arbeitsschritte und SoftwareAusführbares Programm Erzeugen eines ausführbaren Programmes Bytecode Pacman.class Quellcode Pacman.java Compiler Archiv (Pacman.jar) Bytecode Cherry.class jar Compiler Quellcode Cherry.java Compiler Quellcode Ghost.java Bilder/… Bytecode Ghost.class Manifest.mf Manifest-Version: 1.0 Main-Class: de.Main Informatik 2 - Einführung in Java und UML

  20. Arbeitsschritte und Software Versionsverwaltung • Warum sollen die Quelltexte nicht nur im Dateisystem des Entwicklers liegen? • Gruppenarbeit: • Viele Entwickler arbeiten an einem Programm  Zugriff auf deren Quelltexte. • Was haben die anderen Entwickler gemacht oder geändert? • Was habe ich an dem aktuellen Projekt geschrieben? • Verbesserung der eigenen Arbeitsmöglichkeiten: • Automatisierte Sicherung: Was passiert bei Zerstörung der lokalen Daten? • Wiederherstellung eines alten Standes, wenn der neue „kaputtprogrammiert“ wurde  „Undo“ zu einer bekannten Version • Wieso sollen mehrere Versionen eines Programmes gepflegt werden? • Anpassungen für Kunden • Arbeit an alter Version (Korrekturen) und neuer Version (Erweiterungen) • Vergleich unterschiedlicher Versionen  was hat sich geändert? • Jede neue Version einer Datei erhält eine Versionsnummer. • Ziel: Speicherung in einem zentralen „Repository“. Informatik 2 - Einführung in Java und UML

  21. Arbeitsschritte und SoftwareVersionsverwaltung • Einflüsse während der Programmentwicklung: viele Entwickler viele Klassen und Dokumente Projekt viele Versionen viele unterschiedliche Arbeitsplätze Informatik 2 - Einführung in Java und UML

  22. Arbeitsschritte und SoftwareVersionsverwaltung • Grafischer Versionsvergleich: Informatik 2 - Einführung in Java und UML

  23. Arbeitsschritte und SoftwareVersionsverwaltung • Lösung: Unterstützung der Entwicklung durch eine Versionsverwaltung. Auswahl: • RCS/CVS: veraltet • SVN: sehr häufig im Einsatz, ein zentraler Server • Git: manchmal als Nachfolger von SVN gesehen, verteilte Datenhaltung auf mehreren Servern, oft in Open-Source-Projekten, in Firmen noch selten anzutreffen • Team Foundation Server: reine Microsoft-Lösung • In Informatik 2 und im Softwarelabor: Arbeit mit Subversion (SVN) • Genauere Einführung z.B. unter http://svnbook.red-bean.com/ Informatik 2 - Einführung in Java und UML

  24. Arbeitsschritte und SoftwareVersionsverwaltung • Interne Speicherung im Repository: • Es wird normalerweise nicht jede Version komplett abgelegt. • Statt dessen speichert ein Repository die Unterschiede („Deltas“). • Subversion kennt beide Varianten + komplette Speicherung nach Bedarf. Version 1 Version 1 (alt) als vollständige Datei Version 2 Deltas Version 3 Version 4 Version 2 Version 5 (aktuell) als vollständige Datei Version 3 Version 4 Version 5 Vorwärtsdelta: schnelleres Schreiben Rückwärtsdelta: schnelleres Auslesen Informatik 2 - Einführung in Java und UML

  25. Arbeitsschritte und SoftwareVersionsverwaltung • Wichtigste Aktionen für die Arbeit mit Subversion: • Share: einmalig Projekt im Repository anlegen, eventuell lokales Projekt übergeben • Check out (einmalig für ein Projekt): Projekt aus dem Repository in ein lokales Verzeichnis kopieren • Commit: lokal erzeugte Änderungen im Repository ablegen • Update: zwischenzeitliche Änderungen im Repository in das lokale Verzeichnis übernehmen • Für alle Schritte gibt es Kommandozeilenwerkzeuge  sollen hier nicht betrachtet werden. • Die wichtigsten lassen sich auch mit IDE-Plugins durchführen. Informatik 2 - Einführung in Java und UML

  26. Arbeitsschritte und SoftwareVersionsverwaltung (Installation in Eclipse) Arbeit mit SVN • Jetzt kann mit Window Open Perspective  SVN Repository Exploring die Ansicht aller SVN-Server angezeigt werden (ist leer). • Im rechten Fenster SVN Repositories lässt sich durch Rechtsklick mit New  Repository Location ein neuer Server einrichten. • Für den an der Hochschule müssen Sie folgendes eintragen: • URL: http://www.iwi.hs-karlsruhe.de/I/svn/<user>/ • <user>: Ihr IZ-Benutzername • Als Nutzernamen und Password geben Sie Ihren IZ-Account ein. • Save authenticationist auf eigenen Rechnern ganz praktisch, damit Sie sich nicht immer neu anmelden müssen. Informatik 2 – Versionsverwaltung mit SVN

  27. Arbeitsschritte und SoftwareVersionsverwaltung (Projekt anlegen) Projekt anlegen • Wenn das Projekt bisher nur lokal existiert, muss es im Repository angelegt werden. • Dann können alle anderen Entwickler mit der entsprechenden Berechtigung darauf zugreifen. share ProjektXYZ ProjektXYZ Projekt auf dem lokalen Arbeitsplatz-PC Repository auf dem Server mit dem neuen Projekt http://www.iwi.hs-karlsruhe.de/I/svn/<user>/ProjektXYZ/trunk Repository Root Projekt-Pfad Informatik 2 - Einführung in Java und UML

  28. Arbeitsschritte und SoftwareVersionsverwaltung (Projekt anlegen) • Ablauf in Eclipse: • Rechtsklick auf das Projekt • Dann Team und Share Project auswählen. • SVN und im nächsten Dialog Ort des Repositorys auswählen, Simple Mode ist für uns ausreichend • Kommentar eingeben und auf Finish klicken • Empfohlener Aufbau eines Projektarchivs (Repository) auf dem Server: • /Projektname/trunk: Hauptentwicklungslinie des Projektes • /Projektname/branches: Alternative Entwicklungen wie z.B. spezielle Anpassungen für einen Kunden, Wechsel auf neue Technologie, … • /Projektname/tags: Kopie der Hauptentwicklungslinie oder einer Verzweigung zu einem bestimmten Zeitpunkt. • Wird z.B. angelegt, wenn eine neue Version an den Kunden ausgeliefert wird. Dann kann ein Tag mit dem Namen der Version erzeugt wird („Version 1.0“). • Ein Tag hat keine bestimmte Bedeutung. Er erlaubt aber, bestimmte Versionen mit einem leicht erkennbaren Namen zu versehen. Informatik 2 - Einführung in Java und UML

  29. Arbeitsschritte und SoftwareVersionsverwaltung (Check out) Checkout: Daten aus dem Repository auf den lokalen PC kopieren (einmalig) Check out Repository auf dem Server mit allen Versionen des Quelltextes + zusätzlichen Binärdateien lokale Kopie des Quelltextes Entwickler Informatik 2 - Einführung in Java und UML

  30. Arbeitsschritte und Software Versionsverwaltung (Check out) • Ablauf in Eclipse: • Wechsel in die Ansicht SVN Repository Exploring • Rechtsklick auf die gewünschte Version des Projektes • Check Out wählen • Arbeit auf der lokalen Kopie des Projektes Informatik 2 - Einführung in Java und UML

  31. Arbeitsschritte und SoftwareVersionsverwaltung (Commit) Commit: Lokale Änderungen in das Repository übertragen Änderungen eintragen, Konflikte lösen Repository auf dem Server mit allen Versionen des Quelltextes + zusätzlichen Binärdateien lokale Kopie des Quelltextes Entwickler Informatik 2 - Einführung in Java und UML

  32. Arbeitsschritte und SoftwareVersionsverwaltung (Commit) • Ablauf in Eclipse: • Nach den lokalen Änderungen übertragen die Entwickler die neuen Daten in das Repository. • Rechtsklick auf das Projekt (z.B. in der Java-Ansicht) oder Rechtsklick auf einzelne Pakete/Klassen • Dann Team und Commit auswählen. • Die Änderungen sollten unbedingt mit einem Kommentar versehen werden. Der Kommentar beschreibt, was an der Datei geändert wurde („Fehler xyz behoben“, …). • Nur geänderte Daten werden geschrieben. Sie erhalten dabei eine neue Versionsnummer (siehe SVN Repository Explorer). • Was passiert, wenn ein anderer Entwickler die Datei bereits verändert hat? Es ist eine Konfliktbehandlung erforderlich. Informatik 2 - Einführung in Java und UML

  33. Arbeitsschritte und SoftwareVersionsverwaltung (Commit) • Konfliktbehandlung: • Kopieren-Ändern-Zusammenführen-Modell • Auschecken einer Version aus dem Projektarchiv: Eine Kopie der Daten wird auf den Client kopiert. • Arbeit auf den Client-Dateien • Einchecken der Änderungen auf den Server: Die Änderungen werden dort gespeichert, Konflikte müssen behoben werden. Konflikte? • Was passiert, wenn ein anderer Entwickler dieselbe Datei verändert hat? • Möglichkeiten: • Änderungen zusammenführen • eigene Datei überschreibt die auf dem Server • eigene Änderungen werden verworfen • … • Der SVN-Client hilft beim Zusammenführen beider Versionen. Informatik 2 - Einführung in Java und UML

  34. Arbeitsschritte und SoftwareVersionsverwaltung (Commit) • Sperren-Ändern-Entsperren-Modell • Zur Konfliktvermeidung lassen sich Dateien auf dem Server gegen Änderung sperren  nicht sehr gerne gesehen (insbesondere wenn Sie in den Urlaub fahren und die Sperre vergessen). • Bei Binärdateien, die nicht sinnvoll zusammengeführt werden können, ist das Modell aber durchaus sinnvoll. • Häufig kann ein Administrator Sperren wieder entfernen. • Verwendung: • Rechtsklick auf eine Datei oder ein Verzeichnis, Team und Lock… auswählen. • Danach die Dateien bearbeiten. • Abschließend nach einem Commit mit Team und Unlock… wieder freigeben. • In der Praxis hat sich gezeigt, dass das Kopieren-Ändern-Zusammenführen-Modell wenig Probleme bereitet: Nicht jeder Entwickler arbeitet gleichzeitig an allen Projektteilen. Informatik 2 - Einführung in Java und UML

  35. Arbeitsschritte und SoftwareVersionsverwaltung (Update) Update: Zwischenzeitliche Änderungen aus dem Repository übernehmen Update Repository auf dem Server mit allen Versionen des Quelltextes + zusätzlichen Binärdateien lokale Kopie des Quelltextes Entwickler Informatik 2 - Einführung in Java und UML

  36. Arbeitsschritte und SoftwareVersionsverwaltung (Update) • Während der Arbeit oder nach einer Pause haben andere Entwickler eventuell neue Versionen im Repository abgelegt. • Vor einer Änderungen in der eigenen lokalen Kopie sollte sie aktualisiert werden, damit nicht ein alter Stand verändert wird. • Ablauf in Eclipse: • Rechtsklick auf ein Paket, eine Klasse, eine Ressource oder das Projekt, dann Team und Synchronizewith Repositoryauswählen. • Eine weitere Ansicht zeigt die Änderungen, die übernommen werden können. • Weitere Funktionen: siehe weiterführende Literatur (insbes. „Merge“ verschiedene Entwicklungszweige und Kollisionsbehandlung beim „Commit“) Informatik 2 - Einführung in Java und UML

  37. Imperative AspekteÜbersicht Imperative Aspekte Objekt- orientierung Klassen- diagramme Pakete Funktionale Programmierung Java und UML Schritte, Software Ausnah-men Klassen, Objekte Fehler Überladen Zusicher- ungen Vererbung Über- schreiben Gener. Klassen Aufzähl-typen Regeln Informatik 2 - Einführung in Java und UML

  38. Imperative AspekteMotivation • Wie sollte der Quelltext formatiert sein? • Zusammenhang zwischen primitiven Datentypen und Klassen • Wie kann die falsche Verwendung von Funktionen und Algorithmen zur Laufzeit erkannt werden? • Als bekannt vorausgesetzt: Schleifen, Abfragen, lokale Variable Informatik 2 - Einführung in Java und UML

  39. Imperative Aspekte Formatierung des Quelltextes Hinweise zur Formatierung • Der Compiler ignoriert jegliche Formatierung des Quelltextes. • Ein Programmierer benötigt dringend eine gut lesbare Struktur! • Beispiel: public V(){for(int i=0;i<3;i++)v[i]=0;} public Vector() { for (int i = 0; i < getSize(); i++) { values[ i ] = 0.0; } } Die erste Variante ist nicht effizienter, nur komplett unleserlich. • Erleichtern Sie sich und Ihren Kollegen die Arbeit (lassen Sie ein Programm 3 Jahre liegen und schauen Sie es sich dann wieder an). • Einhaltung der Java-Code-Konventionen Checkstyle hilft Ihnen! lesbar Informatik 2 - Einführung in Java und UML

  40. Imperative Aspekte Einige Regeln zur Formatierung des Quelltextes Einige ganz einfache Regeln • Anfangs- und Endklammern eines Blocks immer in dieselbe Spalte setzen oder die Endklammer an das Ende der Zeile davor. • Verzichten Sie nicht auf die Klammern, auch wenn der Block nur eine Zeile enthält, siehe Apple-Sicherheitsproblem vom Februar 2014: Informatik 2 - Einführung in Java und UML

  41. Imperative Aspekte Einige Regeln zur Formatierung des Quelltextes • Den Inhalt eines Blockes immer entweder um einen Tabulator oder eine gleiche Anzahl von Leerzeichen einrücken. • Beispiel: for (int i = 0; i < 10; i++) { Blockinhalt } • Selbsterklärende Variablen- und Methodennamen verwenden. • Großzügig Leerzeilen zwischen verschiedene Blöcke einfügen, um logisch getrennte Einheiten optisch anzuzeigen. • Großzügig Leerzeichen zur Formatierung einfügen. • Reihenfolgen der Operatoren durch Klammerungen optisch hervorheben. • Sinnvolle Kommentare verwenden (nicht einfach: Hier wird x erhöht.) • Siehe auch: http://www.ioccc.org/(The International Obfuscated C Code Contest) Informatik 2 - Einführung in Java und UML

  42. Imperative Aspekte Kommentare in Klassendiagrammen Definition: Anmerkung Eine Anmerkung beinhaltet einen Kommentar für ein beliebiges UML-Sprachelement. • Beispiel: Figure Die Figur ist das zentrale Element in einer Zeichenfläche. +paint() Zuordnung Anmerkung Informatik 2 - Einführung in Java und UML

  43. Imperative Aspekte Konstanten: String und Zeichen String- und Zeichenkonstantenim Unicode-Format • Zeichenkonstanten: char, z.B.: 'A', numerischer Wert = 65 • Stringkonstanten: Folge von char, z.B.: "ABD". Beispiele Informatik 2 - Einführung in Java und UML

  44. Imperative Aspekte Konstanten: String und Zeichen Vordefinierte Sonderzeichen Informatik 2 - Einführung in Java und UML

  45. Imperative Aspekte Konstanten: String und Zeichen (Pacman-Beispiel) • Beschreibung des Spielfeldes im Quelltext durch eine Zeichenkette • Die Zeichenkette wird später eingelesen, um die einzelnen Objekte zu erzeugen. String[] fieldLayout = { ".....*.........*.....", "o***.*.*******.*.***o", "..........C..........", "**.*.****.*.****.*.**", " *.*.*....*.*....*.* ", "**.*.****.*.****.*.**", "E .*......*......*. E", "**.*** ******* ***.**", " *. 0 .* ", " *.*** ###-### ***.* ", " *.* #2 1 3# *.* ", "**.* * ###-### * *.**", "E . * C * . E", "**.****** * ******.**", ".*..... * .....*.", ".*.***.*******.***.*.", "..........P..........", // usw. }; Informatik 2 - Einführung in Java und UML

  46. Imperative Aspekte Konstanten: String und Zeichen (Pacman-Beispiel) String[] fieldLayout = { ".....*.........*.....", "o***.*.*******.*.***o", "..........C..........", "**.*.****.*.****.*.**", " *.*.*....*.*....*.* ", "**.*.****.*.****.*.**", "E .*......*......*. E", "**.*** ******* ***.**", " *. 0 .* ", " *.*** ###-### ***.* ", " *.* #2 1 3# *.* ", "**.* * ###-### * *.**", "E . * C * . E", "**.****** * ******.**", ".*..... * .....*.", ".*.***.*******.***.*.", "..........P..........", ".***.****.*.****.***.", // usw. }; Informatik 2 - Einführung in Java und UML

  47. Imperative Aspekte Parameterübergabe per Wert bei primitiven Datentypen Parameterübergabe per Wert (Call by Value) • Werte primitiver Datentypen werden immer per Wert übergeben. Es wird eine lokale Kopie erzeugt. Änderungen am Wert innerhalb einer Methode wirken nicht nach außen. Beispiel: public voiddoSomething(int xx){ xx = 2; } public int doSomethingElse(){ int x = 21; doSomething(x); System.out.println(x); return 0; } Ausgabe: 21 Informatik 2 - Einführung in Java und UML

  48. Imperative Aspekte Parameterübergabe per Referenz bei Objekten Parameterübergabe per Referenz (Call by Reference) • Objekte werden immer per Referenzen übergeben werden. Damit sind Änderungen nach außen sichtbar. Beispiel: public voiddoSomething(Bruch br){ br.setZaehler(42); } public int doSomethingElse(){ Bruch br = new Bruch(21, 3); doSomething(br); System.out.println(br.getZaehler()); return 0; } Ausgabe: 42 • Zusatznutzen einer Referenzübergabe: Das Anlegen einer Kopie kann zeitaufwändig sein. Informatik 2 - Einführung in Java und UML

  49. Imperative Aspekte Ergebnisrückgabe • Es gilt dasselbe wie bei Übergaben: • Werte primitiver Datentypen werden als Kopie und • Objekte per Referenz zurückgegeben. Informatik 2 - Einführung in Java und UML

  50. Klassen und ObjekteÜbersicht Imperative Aspekte Objekt- orientierung Klassen- diagramme Pakete Funktionale Programmierung Java und UML Schritte, Software Ausnah-men Klassen, Objekte Fehler Überladen Zusicher- ungen Vererbung Über- schreiben Gener. Klassen Aufzähl-typen Regeln Informatik 2 - Einführung in Java und UML

More Related