Einführung in die Programmierung mit BlueJ Thema 1 – Grundlagen der Programmierung mit BlueJ Dr. Henry Herper – Otto-von-Guericke-Universität Magdeburg - WS 2013/14 Java 1991-92 Java (1995) Anwendungsgebiet: plattformunabhängige Sprache in Netzanwendungen Sprachklasse: objektorientierte Programmiersprache Java ist eine einfache, konsequent objektorientierte, robuste, architekturneutrale, übertragbare und dynamische Programmiersprache. Sie basiert auf der Programmiersprache C++, wurde aber wesentlich vereinfacht. Java-Programme werden in Bytecode kompiliert und können damit ohne weitere Kompilierung auf verschiedenen Computern ausgeführt werden, sofern es eine Java Virtual Machine dafür gibt. Professionelle Entwicklungsumgebungen stehen mit dem „Java Development Kit“ von Sun und Visual J++ von Microsoft zur Verfügung. 2 Programmieren 3 Editor Java-Quelltexte können mit jedem beliebigen Texteditor erstellt werden. Die Dateien werden mit der Endung .java gespeichert. Bei Verwendung spezieller Editoren, wie z.B. dem BlueJ-Editor, wird die Programmerstellung durch vorgefertigte Codesequenzen und Syntaxhervorhebung (syntax highlighting) unterstützt. Weitere Entwicklungsumgebungen für Java-Programme sind Eclipse und NetBeans. 4 Zeichenvorrat und Bezeichner Der Zeichenvorrat in Java umfasst die Großbuchstaben A..Z, die Kleinbuchstaben a..z, die Ziffern 0..9 und Sonderzeichen. Großund Kleinbuchstaben werden strikt unterschieden. Landespezifische Zeichen, zu denen auch die deutschen Umlaute gehören, sind zulässig. Auf ihre Verwendung sollte aber im Interesse der internationalen Austauschbarkeit verzichtet werden. Quelltext wird normalerweise in Kleinbuchstaben geschrieben. Eine Sonderstellung nehmen der Unterstrich und das Dollarzeichen ein. Beide sind in Namen zulässig. Aus den Zeichen werden Namen bzw. Bezeichner zusammengesetzt. Jeder Name muss mit einem Buchstaben, dem Unterstrich oder dem Dollarzeichen beginnen. Andere Sonderzeichen oder Leerzeichen sind in Namen nicht erlaubt. Schlüsselwörter dürfen nicht als Bezeichner verwendet werden. 5 Java – Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer 6 Java – Schlüsselwörter Bestimmte Bezeichner, die reservierten Wörter bzw. Schlüsselwörter, können vom Programmierer nicht als Bezeichner verwendet werden. Reservierte Wörter müssen immer klein geschrieben werden! abstract catch do finally import new short assert char double float instanceof package static boolean class else for int private strictfp break const enum goto interface protect super byte continue extends if long public switch this volatile throw while throws transient try case default final implements native return synchronize d void Die Literalkonstanten true und false dürfen nicht als Bezeichner verwendet werden. 7 Dokumentation - Kommentare Kommentare innerhalb einer Programmzeile werden mit // gekennzeichnet. Der nachfolgende Text wird von Compiler nicht ausgewertet und dient nur zur Dokumentation für den Programmierer. Beispiel: x = y + 3 // Wertzuweisung Mehrzeilige Kommentare werden in /* .. */ eingeschlossen. In den Kommentarbereichen können Informationen abgelegt werden, die anschließend vom Java-Doc-System zur Dokumentationserstellung verwendet werden können. Beispiel: /Quelle: Java lernen mit BlueJ/ /** * Ein Kreis, der manipuliert werden kann und sich selbst auf einer Leinwand * zeichnet. * * @author Michael Kölling und David J. Barnes * @version 2008.03.30 */ 8 Java – Trennzeichen Zugelassene Trennzeichen in Java sind: • Leerzeichen • Zeilenendezeichen (<ENTER>) • Tabulatorzeichen • Kommentare • Operatoren ( z.B. + oder * ) • die Interpunktionszeichen ( . , ; ) ( { } [ ] ) Da Java keine zeilenorientierte Programmiersprache ist, wird das Anweisungsendekennzeichen ; verwendet. 9 Regeln für die Gestaltung von Code /RATZ07; Seite 52/ 10 Entwicklungsumgebung BlueJ BlueJ ist eine integrierte Entwicklungsumgebung für Java. Sie ist besonders geeignet, Programmieranfängern die Zusammenhänge der objektorientierten Programmierung in Verbindung mit der Programmiersprache Java zu vermitteln. BlueJ wurde an der Deakin University, Melbourne, Australien und der University of Kent, Canterbury, Großbritannien, entwickelt und kann kostenlos von der Homepage heruntergeladen werden. Jede nicht kommerzielle Verwendung und Weitergabe von BlueJ ist für jedermann kostenlos. 11 Entwicklungsumgebung BlueJ Zustimmung zur Verwendung der (anonymisierten) Interaktionsdaten ist freiwillig und unabhängig vom Kurs Einstellung kann jederzeit unter Preferences/ Miscellaneous geändert werden Rechtsklick auf eine Klasse erlaubt Öffnen des Editors (oder Doppelklick) nach jeder Änderung des Quelltextes muss neu kompiliert werden Eingabeaufforderung wird angezeigt, wenn Eingabedaten erforderlich sind Ergebnisse werden in Ausgabefenster angezeigt oder in Systemkonsole 12 Klassen und Objekte „Eine Klasse beschreibt eine Sammlung von Objekten mit gleichen Eigenschaften (Attributen), gemeinsamer Funktionalität (Methoden), gemeinsam en Beziehungen zu anderen Objekten und gemeinsamer Semantik.“ 13 /Helmut Balzert; Lehrbuch der Softwaretechnik; Spektrum Verlag, 1996// Klassen in BlueJ import java.awt.*; import java.awt.geom.*; /** * A circle that can be manipulated and that draws itself on a canvas. * * @author Michael Kolling and David J. Barnes * @version 1.0 (15 July 2000) */ public class Circle { private int diameter; private int xPosition; private int yPosition; private String color; private boolean isVisible; ... 14 Klassen und Objekte „Ein Objekt ist allgemein ein Gegenstand des Interesses, insbesondere einer Beobachtung, Untersuchung oder Messung. Objekte können Dinge und Begriffe sein. In der objektorientierten Softwareentwicklung besitzt ein Objekt bestimmte Eigenschaften und reagiert mit einem definierten Verhalten auf seine Umgebung. Außerdem besitzt jedes Objekt eine Identität, die es von allen anderen Objekten unterscheidet. Die Eigenschaften eines Objektes werden durch dessen Attributwerte ausgedrückt, sein Verhalten durch eine Menge von Methoden.“ 15 /Helmut Balzert; Lehrbuch der Softwaretechnik; Spektrum Verlag, 1996/ Objekte in BlueJ Nach Rechtsklick auf eine Klasse wird nach Auswahl des Eintrages „new Circle()“ ein Objekt erzeugt. Dabei wird dem Objekt ein eindeutiger Name gegeben (wird vom System vorgeschlagen). Objekt wird als rotes Rechteck visualisiert. 16 Attribut – Methode - Botschaft „Die Attribute beschreiben die Daten bzw. Eigenschaften einer Klasse. Alle Objekte einer Klasse besitzen dieselben Attribute, jedoch unterschiedliche Attributwerte. Das bedeutet für die Implementation, dass jedes Objekt Speicherplatz für alle seine Attribute erhalten muss. Eine Methode ist ein Algorithmus, der einem Objekt zugeordnet ist und von diesem abgearbeitet werden kann. Eine Botschaft ist eine Nachricht, die den Aufruf einer Methode gleichen Namens zur Folge hat.“ 17 /Helmut Balzert; Lehrbuch der Softwaretechnik; Spektrum Verlag, 1996/ BlueJ - Objektinspektor Nach Rechtsklick auf ein Objekt „inspect“ auswählen – dann wird der Objektinspektor geöffnet. Hier werden die Attribute angezeigt. 18 BlueJ – Objekte und Methoden Rechtsklick auf ein Objekt öffnet auch eine Liste aller Methoden dieses Objektes. 19 BlueJ – Objekte und Methoden Über den Editor kann man auf die Attribute und die Methoden einer Klasse zugreifen. 20 Kontrollfragen und Aufgaben 1. 2. 3. 4. 21 Was versteht man unter einem Bezeichner? Welche Regeln gelten für die Verwendung von Bezeichnern in Java? Welche der folgenden Bezeichner sind keine gültigen Bezeichner in Java? Begründen Sie ihre Aussage. Name, NAME, _jahr, daten.dat, 091004brief, brief_220909, vers$1, $XX3, class Was versteht man unter reservierten Wörtern in Java? Geben Sie 3 Beispiele an. Was ist bei der Benutzung und Schreibweise zu beachten? Wozu werden Kommentare in Java-Programmen verwendet? Wie werden sie gekennzeichnet? Gehen Sie dabei auf ein- und mehrzeilige Kommentare ein. Welche Informationen sollten im Kommentar vor einer BlueJ-Methode stehen? Erläutern Sie die Begriffe „Objekt“ und „Klasse“ im Zusammenhang mit der objektorientierten Softwareentwicklung. Beschreiben Sie in diesem Zusammenhang die Begriffe Attribut, Methode und Botschaft. Literatur Dietmar Ratz, Jens Scheffler, Detlef Seese, Jan Wiesenberger Grundkurs Programmieren in JAVA Carl Hanser Verlag München Wien, 2010, ISBN-13: 978-3-446-41655-0 David J. Barnes, Michael Kölling Java lernen mit BlueJ Pearson Studium, 2009, ISBN-13: 978-3-86894-001-5 Offizielle BlueJ-Webseite: www.bluej.org Das BlueJ-Tutorial: http://www.bluej.org/tutorial/blueJ-tutorial-deutsch.pdf 22