Eine Einführung mit BlueJ und der Bibliothek Stifte und Mä · PDF fileBernard...

of 71/71
Informatik mit Java Eine Einführung mit BlueJ und der Bibliothek Stifte und Mäuse Band 1 1
  • date post

    06-Feb-2018
  • Category

    Documents

  • view

    275
  • download

    8

Embed Size (px)

Transcript of Eine Einführung mit BlueJ und der Bibliothek Stifte und Mä · PDF fileBernard...

  • Informatik mit Java

    Eine Einfhrung mit BlueJ und der Bibliothek Stifte und Muse

    Band 1

    1

  • 2

  • Bernard Schriek

    Informatik mit Java

    Eine Einfhrung mit

    BlueJ

    und der Bibliothek

    Stifte und Muse

    Band I

    Nili-Verlag, Werl

    3

  • Bibliografische Information der Deutschen Bibliothek

    Die Deutsche Bibliothek verzeichnet diese Publikation in der DeutschenNationalbibliografie; detaillierte bibliografische Daten sind im Internetunter abrufbar.

    Die Informationen in diesem Buch werden ohne Rcksicht auf einen eventuellen Patent-schutz verffentlicht. Warennamen werden ohne Gewhrleistung der freien Verwendbar-keit benutzt. Bei der Zusammenstellung von Texten und Abbildungen wurde mit grterSorgfalt vorgegangen. Trotzdem knnen Fehler nicht ausgeschlossen werden. Verlag undAutor knnen fr fehlerhafte Angaben und deren Folgen weder eine juristische Verant-wortung noch irgendeine Haftung bernehmen. Fr Verbesserungsvorschlge und Hin-weise auf Fehler sind Verlag und Autor dankbar.

    [email protected]/sum

    Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speiche-rung in elektronischen Medien. Die gewerbliche Nutzung der in diesem Produkt gezeig-ten Modelle und Arbeiten ist nicht zulssig.

    Alle Hardware- und Softwarebezeichnungen, die in diesem Buch erwhnt werden, sindgleichzeitig auch eingetragene Warenzeichen oder sollten als solche betrachtet werden.

    ISBN10: 3-00-017092-8ISBN13: 978-3-00-017092-8

    2005-2006 by Nili-Verlag, WerlBernard SchriekOstlandstr. 5259457 WerlAlle Rechte vorbehaltenGeschrieben mit dem Programm Ragtime 6 der Ragtime GmbH, Hilden

    Druck und Verarbeitung: SDV - Die Medien AG, Dresden

    Printed in Germany

    4

  • 5

  • Inhalt

    Danksagung 9Vorwort an Schler 10Vorwort an Lehrer 12

    Kapitel 1 Installation 13

    1.1 Installation von BlueJ 131.2 Installation des JDK und der API-Dokumentation 141.3 Installation der SuM-Bibliotheken 141.4 Test der Installation 15

    Kapitel 2 Klassen und Objekte 16

    2.1 Klassen und Objekte 162.2 Objekte erzeugen 172.3 Dienste aufrufen 182.4 Klassendokumentationen ansehen 192.5 Anfragen und Auftrge 212.6 Die Punktnotation fr Dienstaufrufe 212.7 Zusammenfassung 22

    Kapitel 3 Aufbau eines SuM-Programms 24

    3.1 Erzeugen einer Programm-Vorlage 243.2 Programmaufbau 263.3 Programmausfhrung 273.4 Fehlersuche 273.5 Programmgesteuertes Zeichnen 293.6 Zusammenfassung 29

    Kapitel 4 Kontrollstrukturen I 32

    4.1 Schleife mit Ausgangsbedingung 324.2 Einseitige Verzweigung 344.3 Schleife mit Eingangsbedingung 354.4 Zweiseitige Verzweigung 364.5 Klasse Tastatur 364.6 Linien zeichnen 374.7 ist-Beziehung 374.8 Tastaturpuffer 394.9 Mehrseitige Verzweigung 404.10 Zusammenfassung 42

    Kapitel 5 Kontrollstrukturen II 44

    5.1 Pfeil und Dartscheibe 445.2 Fliegender Pfeil 455.3 Pfeil fllt 45

    Inhaltsverzeichnis6

  • 5.4 Pfeil dreht 465.5 Treffer! 465.6 Wieder hoch! 465.7 Zwei Spieler 465.8 Jetzt wird's bunt 475.9 Zufallszahlen 475.10 Schatz verstecken 485.11 Abstand berechnen 495.12 Schnell suchen! 505.13 Zusammenfassung 51

    Kapitel 6 Eigene Klassen I 52

    6.1 Eigene Unterklassen erzeugen 526.2 Klassendiagramm 576.3 hat-Beziehung 586.4 Beziehungsdiagramm 596.5 Attribute 616.6 kennt-Beziehung 656.7 ist-Beziehung 666.8 Zusammenfassung 69

    Kapitel 7 Eigene Klassen II 72

    7.1 Zufallsweg 727.2 Weg zum Ziel 747.3 Intelligenz? 767.4 Minigolf 777.5 Treffen! 797.6 Zusammenfassung 81

    Kapitel 8 Abstrakte Klassen I 83

    8.1 Substantiv-Verb-Methode 838.2 Dynamische Referenz 858.3 Generalisierung 888.4 Spte Bindung 908.5 Sichtbarkeit 918.6 Erweiterungen 928.7 Zusammenfassung 93

    Kapitel 9 Abstrakte Klassen II 96

    9.1 Entwurf 969.2 Lokale Variable 979.3 Verkettung 989.4 Zusammenfassung 102

    Inhaltsverzeichnis 7

  • Kapitel 10 Ereignisorientierung 104

    10.1 Anwendung 10410.2 Problemzerlegung 10910.3 Ereignisanwendung 11010.4 Leerlaufereignis 11510.5 Freihandzeichnen ereignisorientiert 11610.6 Hauptprogramm 11810.7 Zusammenfassung 119

    Kapitel 11 Ereignisbearbeiter 122

    11.1 Knpfe 12211.2 Aktionen 12611.3 Ereignisbearbeiter 13011.4 Ereignisverteiler 13311.5 Debugger 13711.6 Sichtbarkeit von Komponenten 13911.7 Zusammenfassung 140

    Kapitel 12 Phasen eines Softwareprojekts 142

    12.1 Phasenmodell 14212.2 Pflichtenheft 14412.3 Entwurfsphase 14512.4 Implementierung 14712.5 Modultest 14912.6 Zusammenbau der Module 15412.7 Ereignisbibliothek 15712.8 Zusammenfassung 160

    Kapitel 13 Model View Controller 162

    13.1 Bildschirmmaske 16213.2 SuM-Programmgenerator 16313.3 Datenmodellierung 16513.4 Programmsteuerung 16713.5 Applets 16813.6 MVC-Modell 16913.7 Zusammenfassung 170

    Anhang 172

    Verzeichnis der benutzten Projekte 172Klassendiagramme der SuM-Kern-Bibliothek 173Klassendiagramme der SuM-Werkzeuge-Bibliothek 174Klassendiagramme der SuM-Ereignis-Bibliothek 175Klassendiagramme der SuM-Komponenten-Bibliothek 176Index 177

    Inhaltsverzeichnis8

  • Danksagung

    Das Paket Stifte und Muse (SuM) wurde in den 90er Jahren im Rahmen der Lehrerfort-bildung von Ulrich Borghoff, Dr. Jrgen Czischke, Dr. Georg Dick, Horst Hildebrecht,Dr. Ludger Humbert und Werner Ueding entwickelt. Die Bibliothek wurde zuerst in Ob-ject Pascal und Oberon geschrieben und dann auf andere objektorientierte Sprachen por-tiert. Die Urfassung des SuM-Kern-Pakets in Java wurde mir von Dr. Georg Dick zurVerfgung gestellt. Im Rahmen der Planung einer weiteren Fortbildungsreihe, an der ichauch beteiligt war, wurde die Bibliothek SuM-Kern um weitere Pakete erweitert. FokkeEschen schrieb die erste Version des Programmgenerators, die dann im Rahmen einer be-sonderen Lernleistung von Alexander Bissaliev (Abi 2005) neu geschrieben wurde. Allein diesem Buch behandelten Projekte wurden von den oben genannten Kollegen beimehreren Fortbildungen zur objektorientierten Programmierung entwickelt und auch imUnterricht erprobt. Umfangreiche methodisch-didaktische Materialien wurden auf demBildungsserver Learnline bereitgestellt . Dort gibt es auch ein Forum zum Gedankenaustausch. Der OOP-Bereich aufLearnline wird von Horst Hildebrecht verwaltet. Dieses Buch soll ein weiterer Bausteinzum SuM-Paket sein. Ich bedanke mich bei allen Entwicklern dieses Pakets sowie denKollegen in den verschiedenen Fortbildungsgruppen, die durch anregende Diskussionendie Weiterentwicklung untersttzt haben.

    Die freie Java-Entwicklungsumgebung BlueJ wurde Ende der 90er Jahre an der Monash-Universitt in Australien speziell fr den Unterricht entwickelt und auch stndig weiterentwickelt. Besonderer Dank geht an Michael Klling von der University of SouthernDenmark, der die BlueJ-Webseiten pflegt und mit David J.Barnes ein hervorragendes Lehrbuch zur objektorientierten Programmierung mit BlueJgeschrieben hat.

    Die Programmiersprache Java wurde von Sun Microsystems, Santa Clara, Kalifornienentwickelt. Neben der Objektorientierung und Plattformunabhngigkeit ist die einfache,klare und konsistente Syntax und das konsequente Sprachkonzept ein besonderer Vorzugdieser Programmiersprache, die inzwischen an fast allen Hochschulen und Fachhoch-schulen eingesetzt wird. Mein Dank gilt allen Javaentwicklern sowie der Firma Sun, diedas Java-Paket kostenlos zur Verfgung stellt.

    Bedanken mchte ich mich auch bei Bastian Hafer, Philipp Hrster und WaldemarLehmann (Jg. 11), die die bungsaufgaben getestet haben und bei der Fehlersuche hal-fen.

    Besonderer Dank geht an Horst Hildebrecht, der das Manuskript kritisch durchsah undmir viele Anregungen fr Verbesserungen gab.

    Nicht zuletzt gilt mein Dank meiner Frau, die meine stundenlangen Sitzungen am Com-puter mit viel Geduld ertragen hat und mich immer wieder zur Weiterarbeit ermutigte.

    Werl, im September 2005

    Bernard Schriek

    Danksagung 9

  • Vorwort an Schler

    In der Informatik geht es genauso wenig um Computer, wie in der Astronomieum Teleskope.

    Edsger W. Dijkstra

    Sie haben sich entschlossen Informatik zu lernen. Was ist Informatik? Informatik ist eineStrukturwissenschaft, die sich mit Information und ihrer automatischen Verarbeitung be-schftigt. Das Werkzeug des Informatikers ist der Computer. Die Informatik ist eine In-genieurwissenschaft, die sich mit mathematischen Maschinen beschftigt. Diese Maschi-nen knnen Daten speichern, bertragen und mit der Hilfe von Algorithmen automatischverarbeiten. Algorithmen sind eindeutige, endliche Folgen von Anweisungen zur Steue-rung dieser Maschinen. Die Informatik ist inzwischen Hilfswissenschaft fr fast alle an-deren Fachgebiete. Die Strke aber auch die Gefahr von Computern liegt in der Ge-schwindigkeit, mit der groe Datenmengen verarbeitet werden knnen.

    Damit Computer Aufgaben erledigen knnen, mssen sie programmiert werden. Aber sowie ein Haus zuerst von einem Architekten geplant wird, muss auch ein Computerpro-gramm geplant werden. Dazu gibt es verschiedene Verfahren, die Sie in diesem Buchkennen lernen werden. Natrlich bentigt man zum Hausbau auch Maurer, die ihr Ge-schft verstehen. Genau so muss ein Informatiker eine oder mehrere Programmierspra-chen lernen. Sie sollen mit diesem Buch die Programmiersprache Java lernen. Hinter die-ser Sprache steht aber das Konzept der objektorientierten Programmierung. Dieses Kon-zept wird von einer Reihe von weiteren Programmiersprachen untersttzt (Object Pascal,Smalltalk, C++ u.v.m.). Wenn Sie das Konzept verstanden haben, wird es Ihnen leichtfallen, andere objektorientierte Sprachen zu lernen.

    Computersprachen haben eine Syntax so, wie natrliche Sprachen eine Grammatik ha-ben. Die Syntax dient dazu, Regeln fr den Aufbau der Computersprache festzulegen.Allerdings ist die Syntax von