Kapitel 1: Programmierung



Ähnliche Dokumente
Programmierung. Programme, Compiler, virtuelle Maschinen, Java

Arbeiten mit BlueJ. Objektorientiertes Programmieren in Java mit BlueJ

In BlueJ geht es einfach

3. Die Programmiersprache Java

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Informatik I Tutorial

Vorkurs Informatik WiSe 15/16

Informatik 1 Tutorial

Programmierkurs Java

Vorlesung Informatik II

Schritt-Schritt-Anleitung zum mobilen PC mit Paragon Drive Copy 10 und VMware Player

GameGrid mit BlueJ Seite 1

Java: Vererbung. Teil 3: super()

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

Einführung in Eclipse und Java

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Einführung in die Programmierung

Festplatte defragmentieren Internetspuren und temporäre Dateien löschen

Windows 7/8 - Backdoor

Comic Life 2.x. Fortbildung zum Mediencurriculum

TeamSpeak3 Einrichten

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

Erstellen von x-y-diagrammen in OpenOffice.calc

Tutorial Speichern. Jacqueline Roos - Riedstrasse 14, 8908 Hedingen, jroos@hispeed.ch -

Handbuch für Easy Mail in Leicht Lesen

Arbeiten mit UMLed und Delphi

Neue Schriftarten installieren

Abwesenheitsnotiz im Exchangeserver 2010

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Workshop: Eigenes Image ohne VMware-Programme erstellen

Beuth Hochschule JDK und TextPad WS14/15, S. 1

Einführung in die Java- Programmierung

Excel Pivot-Tabellen 2010 effektiv

Mediator 9 - Lernprogramm

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Applications Applets (eingeschränkte Rechte)

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Wie halte ich Ordnung auf meiner Festplatte?

Um Übergänge, Ein- und Ausblendung zu gestalten, kann man hier eine Leere vor oder nach einem Clip einfügen. Ein Clip ist ein einzelner Film.

Anleitung über den Umgang mit Schildern

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

Wollen Sie einen mühelosen Direkteinstieg zum Online Shop der ÖAG? Sie sind nur einen Klick davon entfernt!

Newsletter. 1 Erzbistum Köln Newsletter

LEHRSTUHL FÜR DATENBANKEN

Leichte-Sprache-Bilder

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

GEONET Anleitung für Web-Autoren

Einrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications


Registrierung am Elterninformationssysytem: ClaXss Infoline

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Kapitel 3 Frames Seite 1

Übungsblatt 3: Algorithmen in Java & Grammatiken

Bauteilattribute als Sachdaten anzeigen

Anleitung: Webspace-Einrichtung

Objektorientierte Programmierung OOP Programmieren mit Java

Windows XP maßgeschneidert

Partnerportal Installateure Registrierung

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Objektorientiertes Programmieren mit Suse Linux

Grundlagen Word Eigene Symbolleisten. Eigene Symbolleisten in Word erstellen

In 15 Schritten zum mobilen PC mit Paragon Drive Copy 11 und VMware Player

Kompilieren und Linken

mit dem TeXnicCenter von Andreas Both

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

4D Server v12 64-bit Version BETA VERSION

disk2vhd Wie sichere ich meine Daten von Windows XP? Vorwort 1 Sichern der Festplatte 2

! " # $ " % & Nicki Wruck worldwidewruck

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Urlaubsregel in David

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Anleitung zum Einspielen der Demodaten

Anleitung für das Erstellen und Übertragen von Berichten für die Gemeindezeitung der VG Marquartstein

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

Bildcollage mittels Ebenen: Die Wunderblume

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Datensicherung. Beschreibung der Datensicherung

Installation und Inbetriebnahme von Microsoft Visual C Express

Hex Datei mit Atmel Studio 6 erstellen

Aber mancher braucht diese Funktionalität halt, doch wo ist sie unter Windows 8 zu finden?

Eigenen Farbverlauf erstellen

Faktura. IT.S FAIR Faktura. Handbuch. Dauner Str.12, D Mönchengladbach, Hotline: 0900/ (1,30 /Min)

SAMMEL DEINE IDENTITÄTEN::: NINA FRANK :: :: WINTERSEMESTER 08 09

Tutorium Java Ein Überblick. Helge Janicke

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Die Cloud der Gruppe Clubmädchen

Starten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.

Anwendungsbeispiele Buchhaltung

Übungen Programmieren 1 Felix Rohrer. Übungen

Transkript:

Kapitel 1: Programmierung Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik 1 im Herbstsemester 2007 Folien nach einer Vorlage von H.-Peter Gumm, Philipps-Universität Marburg

Ankündigungen 6.9.2007 Melden Sie sich zu den Übungsgruppen an bis Sonntag unter http://tuto.uni-mannheim.de in Gruppen bis maximal 3 Personen Besorgen Sie sich eine Benutzerkennung für den PI-Pool Im PI-Pool zu den ausgehängten Öffnungszeiten Zur Zeit Montags, Dienstags, Donnerstags und Freitags, jeweils 10-18 Uhr Praktische Informatik I, HWS 2007, Kapitel 1 Seite 2

Übersicht Programme Compiler virtuelle Maschinen Java Praktische Informatik I, HWS 2007, Kapitel 1 Seite 3

Programme Ein Programm ist eine Folge von Anweisungen, die einem Computer sagen, was er tun soll tuwas.c for(int i=0; i=0; i<10; i<10; i++) i++) System.out.println ( Hello World ); Beep(); Play(nextAudiofile); Programme werden in einer künstlichen Sprache verfasst und in Textdateien gespeichert. Sie sollen für Menschen lesbar sein so präzise sein, dass sie unmissverständliche Handlungsanweisungen für einen Rechner beinhalten. Praktische Informatik I, HWS 2007, Kapitel 1 Seite 4

Programmiersprachen Es gibt Tausende von Programmiersprachen Allgemeine Sprachen, mit denen prinzipiell alle Fähigkeiten eines Rechners zugänglich sind Pascal, C, Java, C#, Prolog, LISP, FORTRAN, Spezialsprachen für bestimmte Anwendungen SQL, HTML, TeX, TCL/TK, Praktische Informatik I, HWS 2007, Kapitel 1 Seite 5

Maschinensprache Mein Mensch spinnt! Rechner verstehen nur sehr einfache Kommandos ADD AX FFh, INC AX, JMP 0A3, MOV AX 5 Diese Kommandos sind als Zahlen im Binärsystem (d.h. mit den Ziffern 0 und 1) kodiert, etwa: 10001010 10100111 11010101 10010110 11010110 10101001 11110101 01011110 10110010 10100101 Für Menschen sind Programme in Maschinensprache nicht mehr direkt lesbar. Praktische Informatik I, HWS 2007, Kapitel 1 Seite 6

Compiler Ein Compiler übersetzt Programme aus einer höheren Sprache in die Maschinensprache des Computers. tuwas.c int inti; i; for(i=0;i<10;i++) printf( Hello World ); beep(); play( HeyJoe.mp3 ); Praktische Informatik I, HWS 2007, Kapitel 1 Ausführbares Programm C-Compiler tuwas.exe 10001010 10100111 11010101 10010110 11010110 10101001 11110101 01011110 10110010 10100101 Seite 7

Maschinenabhängigkeit Jede Maschine hat andere Befehle Ein Programm für einen PC läuft nicht auf dem Mac und umgekehrt Betriebssysteme stellen eine Infrastruktur bereit, die Programme nutzen können: Dateiverwaltung, Speicherverwaltung, Prozessverwaltung, Input/Output, Hilfsprogramme Programme greifen direkt auf die Ressourcen von Betriebssystemen zu writefile, print, readfile, send, receive, out, Konsequenz: Jedes Programm läuft nur auf einem bestimmten Rechnertyp mit einem bestimmten Betriebssystem z.b. nur auf PC mit Linux, oder nur auf Mac mit MacOS Praktische Informatik I, HWS 2007, Kapitel 1 Seite 8

m Sprachen, n Plattformen = m * n Compiler Pascal Pascal Compiler für PC mit Linux Pascal Compiler für PC mit Windows C PC mit Linux Pascal Compiler für Mac mit MacOS Basic PC mit Windows LISP Praktische Informatik I, HWS 2007, Kapitel 1 Mac mit MacOS Seite 9

Virtuelle Maschine Eine Virtuelle Maschine ist ein gedachter Computer VM. VM wird auf jedem realen Computer simuliert (emuliert). Man kann eine VM auch als Zwischensprache auffassen. Anweisungen in dieser Sprache heißen Bytecode. Für jede Sprache L benötigt man nur einen Compiler von L nach VM. Praktische Informatik I, HWS 2007, Kapitel 1 Seite 10

Virtuelle Maschine ein Traum? Pascal C PC mit Linux Basic Virtuelle Maschine PC mit Windows LISP M Sprachen, N Plattformen = M Compiler + N Implementierungen der VM Praktische Informatik I, HWS 2007, Kapitel 1 Mac mit MacOS Seite 11

Nachteil einer virtuellen Maschine Effizienzverlust Spezielle Stärken bestimmter Hardware werden vielleicht nicht genutzt z.b. spezielle Graphikbefehle, Textbefehle, Spezielle Features bestimmter Sprachen kommen auf bestimmten (virtuellen) Maschinen mehr auf anderen weniger zur Geltung Garbage Collection, Rekursion, Fazit: Eine ideale virtuelle Maschine gab es bisher nur im Traum. Praktische Informatik I, HWS 2007, Kapitel 1 Seite 12

Java Virtuelle Maschine nur für Java Die Java-Runtime-Engine ist eine virtuelle Maschine speziell für die Sprache Java. Sie ist auf fast allen Plattformen implementiert. Unter Windows heißt sie java.exe. PC mit Linux PC mit Windows JVM (Java Virtual Machine) Praktische Informatik I, HWS 2007, Kapitel 1 Mac mit MacOS Seite 13

Alles gab es schon mal Virtuelle Maschinen für eine Sprache und multiple Plattformen gab es schon früher, sie haben sich aber nie durchgesetzt. Früher existierende virtuelle Maschinen für verschiedene Sprachen: Pascal : p-maschine (Mitte der 80-er Jahre) Smalltalk : Smalltalk Bytecode Interpreter Prolog : WAM 1980+30 = Smalltalk 80 kann man als Vorläufer von Java ansehen. Smalltalk ist Java in vieler Beziehung weit überlegen. Es war seiner Zeit ca. 30 Jahre voraus Praktische Informatik I, HWS 2007, Kapitel 1 Seite 14

Erfolg steckt an Seit sich Java durchgesetzt hat, wird die JVM auch als Zielmaschine für andere Sprachen benutzt: PC mit Linux JPython JBasic NetProlog JVM PC mit Windows Smalltalk/JVM Praktische Informatik I, HWS 2007, Kapitel 1 Mac mit MacOS Seite 15

Compilation von Java-Programmen Aus einer Textdatei mit der Endung.java erzeugt der Compiler javac eine Datei mit gleichem Namen, aber Endung.class Diese enthält den Bytecode für die JVM Hallo.java public public class class Hallo{ Hallo{ public static void public static void main(string[] main(string[] args) args) { System.out.println { System.out.println ( Hallo ( Hallo Leute ); Leute ); } } } } Quellprogramm als Textdatei Hallo.java Compiler javac.exe Hallo.class if_cmpeq dup_x1 if_cmpeq dup_x1 got_w got_w istore istore ddiv isub ddiv isub ladd ladd ifge ifge bipush ldiv bipush ldiv dadd return dadd return Bytecode als Datei Hallo.class Praktische Informatik I, HWS 2007, Kapitel 1 Seite 16

Ausführung Die Datei mit dem Bytecode wird der JVM übergeben. Der Bytecode könnte auch von einem anderen System, etwa von JPython, JBasic oder Smalltalk/JVM erzeugt stammen. Hallo.class if_cmpeq if_cmpeq got_w got_w ddiv ddiv ladd ladd bipush bipush dadd dadd dup_x1 dup_x1 istore istore isub isub ifge ifge ldiv ldiv return return Hallo Leute Bytecode als Datei Hallo.class Java Virtual Machine java.exe Praktische Informatik I, HWS 2007, Kapitel 1 Seite 17

Die Werkzeuge des SDK Java Virtual Machine java.exe Dokumentationstool javadoc.exe Java-Compiler javac.exe Praktische Informatik I, HWS 2007, Kapitel 1 Seite 18

Wie geht s praktisch unter Windows? 1. Ein Textdatei mit Namen Hallo.java erstellen Hallo.java public publicclass classhallo{ public publicstatic staticvoid voidmain(string[] args) args) { System.out.println( Hallo Leute ); Leute ); } } 2. Compilieren mit dem Befehl: javac.exe Hallo.java Es entsteht eine Datei Hallo.class 3. Ausführen: java.exehallo In der Konsole (DOS-Box/Shell) : C:> javac Hallo.java C:> java Hallo Hallo Leute Praktische Informatik I, HWS 2007, Kapitel 1 Seite 19

In Windows XP: 1. Mit beliebigem Texteditor die Datei Hallo.java erstellen 2. Kommmandointerpreter cmd.exe aufrufen 3. Compilieren mit javac 4. Ausführen mit java 5. Ergebnis bestaunen Praktische Informatik I, HWS 2007, Kapitel 1 Seite 20

Solche Programme sind heute untypisch Niemand schreibt mehr auf die Konsole Rückmeldungen kommen in MessageBoxen Statuszeilen Klängen Kein Mensch liest mehr von der Konsole. Eingabe kommt aus Bestätigungen Menüs TextFeldern RadioButtons CheckBoxes ListBoxes Slider Praktische Informatik I, HWS 2007, Kapitel 1 Seite 21

Die Programmerstellung ist vorsintflutlich Man muss Kommandos auf der Kommandozeile eintippen Wo ist die? Sind die Pfade richtig gesetzt? Man wechselt dauernd zwischen Programmaufrufen Editor Compiler Virtuelle Maschine Compilermeldungen erscheinen auf der Kommandozeile Error in Line 737 ; expected (wo?) Testen der Programme (durch Fehlermeldungen) ist umständlich System.out.println( Das dürfte jetzt nicht sein ); Praktische Informatik I, HWS 2007, Kapitel 1 Seite 22

Kapitel 2: Arbeiten mit BlueJ Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik 1 im Herbstsemester 2007 Folien nach einer Vorlage von H.-Peter Gumm, Philipps-Universität Marburg

Übersicht Compilieren Editieren Objekte erzeugen Methoden aufrufen Objekte inspizieren vorhandene Klassen benutzen eigene Klassen und Methoden erstellen Praktische Informatik I, HWS 2007, Kapitel 2 Seite 2

In BlueJ geht es einfach BlueJ durch Doppelklick starten Bluej.exe Neues Projekt öffnen Da passen dann viele Klassen hinein Name ausdenken: Demos Praktische Informatik I, HWS 2007, Kapitel 2 Seite 3

BlueJ, Erste Klasse... Neue Klasse Name: Hallo Klasse Hallo.java ist entstanden Die rechte Maustaste öffnet ein Kontextmenü. Damit können wir die Klasse z.b. editieren. Praktische Informatik I, HWS 2007, Kapitel 2 Seite 4

Editieren, Compilieren Der Editor enthält schon Beispielcode. Meistens werden wir diesen verändern editieren. Wir können ihn aber auch schon gleich übersetzen kompilieren cursor Shortcut: Strg-k Praktische Informatik I, HWS 2007, Kapitel 2 Seite 5

Editieren, Compilieren Text hinzufügen, kompilieren (Ctrl-k) alternativ: Kompilieren aus dem Kontextmenü (rechte Maustaste) aufrufen Praktische Informatik I, HWS 2007, Kapitel 2 Seite 6

Aufruf und Ergebnis Aufruf unserer Funktion main aus dem Kontextmenü Angebot, einige Strings als Parameter an main zu übergeben Das Ergebnis des Programms: Ein Konsolenfenster mit dem gewünschten Output Praktische Informatik I, HWS 2007, Kapitel 2 Seite 7

Objekte erzeugen Das KontextMenü bietet uns eine weitere Auswahl: new Hallo(). Damit erzeugen wir Objekte : Der Klasse im BlueJ- Fenster sieht man an, dass sie erfolgreich compiliert ist sie ist jetzt nicht mehr gestreift. Hier sind schon drei Objekte erzeugt worden Praktische Informatik I, HWS 2007, Kapitel 2 Seite 8

Objekte unser Ziel Objekte sind die Helden des Objektorientierten Programmierens. In BlueJ können alle Fähigkeiten der Objekte durch Kontextmenüs direkt aufgerufen werden. Zusätzlich kann man die Innereien der Objekte inspizieren (Inspect), oder das Objekt entfernen (Remove). Praktische Informatik I, HWS 2007, Kapitel 2 Seite 9

Figuren, als Objekte modelliert Wir öffnen das vorhandene Projekt shapes und erzeugen uns Objekte der Klassen Circle Square Triangle. Wir können den Objekten Namen geben, z.b.: kreis quadrat oder die Vorgabe-Namen circle_1 circle_2 triangle_1... akzeptieren. Wir halten uns an den allgemein akzeptierten Standard: Namen für Objekte beginnen immer mit Kleinbuchstaben!!! Namen für Klassen beginnen mit einem Großbuchstaben!!! Praktische Informatik I, HWS 2007, Kapitel 2 Seite 10

Warum sehen wir keinen Kreis? Wir inspizieren das Objekt kreis, indem wir aus dem Kontextmenü Inspect wählen. Praktische Informatik I, HWS 2007, Kapitel 2 Seite 11

isvisible = false Es öffnet sich ein Inspektor: Der kreis hat also diameter 30 xposition 20 color blue und die Eigenschaft isvisible false Wir müssen also diese Eigenschaft verändern. Aber wie? Praktische Informatik I, HWS 2007, Kapitel 2 Seite 12

Die Methode makevisible() Im KontextMenü von kreis finden wir die Methode makevisible(). Wir klicken diese an und der Kreis wird in einem Fenster sichtbar Praktische Informatik I, HWS 2007, Kapitel 2 Seite 13

Methodenerkundung Auf die gleiche Weise machen wir auch quadrat und triangle_2 sichtbar. Anschliessend probieren wir weitere Methoden, z.b. von square die Methode moveright( ) von kreis die Methode movedown( ) von square die Methode moveup( ) von square die Methode moveright( ) Praktische Informatik I, HWS 2007, Kapitel 2 Seite 14

Methoden mit Argumenten Jetzt wollen wir die Größe des Quadrats ändern und wählen die Methode changesize(int) Es öffnet sich ein InputFenster, das uns auffordert, einen neuen Durchmesser einzugeben. int bedeutet, dass eine ganze Zahl verlangt ist. In dem Kästchen steht aber noch ein Kommentar //Change size... Size must be >= 0. Wir geben 100 ein und. Praktische Informatik I, HWS 2007, Kapitel 2 Seite 15

Weitere Objekte Wir fügen zwei weitere Kreise hinzu bewegen einen 100 nach rechts den anderen um 50 nach unten machen beide sichtbar wir sehen nur zwei blaue Kreise. Wo ist der dritte? Genau, der große blaue verdeckt den kleinen blauen oder umgekehrt Zum Glück finden wir im KontextMenü von circle_2 die Methode changecolor(string) Praktische Informatik I, HWS 2007, Kapitel 2 Seite 16

String-Argumente Wir sollen einen String, also einen Text in Anführungszeichen eingeben. Der Programmierer hat bemerkt, dass red, yellow, blue, etc. erlaubt sind : Jetzt sehen wir auch circle_2 : Praktische Informatik I, HWS 2007, Kapitel 2 Seite 17

Nach-Inspektion Wir schauen noch einmal im Inspektor für kreis nach und erkennen, dass die Felder diameter xposition yposition isvisible neue Werte haben. Offensichtlich kommen drei Typen von Werten vor int steht für ganzzahlige Werte, z.b. 1, 20, -300, 0, 42 String steht für Text, z.b. blue, OttoKar, ich habe fertig! boolean steht für einen der Werte true oder false (ohne ). Praktische Informatik I, HWS 2007, Kapitel 2 Seite 18

Ein Haus für BlueJ Versuchen Sie, diese idyllische Szene nachzuzeichnen Entwerfen Sie Ihr eigenes Haus Malen Sie Ihr eigenes Bild z.b. Fische im Aquarium Smileys eine Lokomotive... Praktische Informatik I, HWS 2007, Kapitel 2 Seite 19

Ein Maler als Java-Programm Bisher haben wir alle Manipulationen interaktiv erledigt. Kann man das auch programmgesteuert machen? Welche Aktionen waren notwendig: Kreise erzeugen und Namen geben z.b. kreis, circle_1, circle_2 Quadrate erzeugen und Namen geben z.b. quadrat Dreiecke erzeugen und Namen geben z.b. triangle_1, triangle_2. Wie kann man das durch eine Java-Klasse erledigen? Wir benötigen eine Klasse um Bilder zu produzieren, z.b. eine Klasse Maler Praktische Informatik I, HWS 2007, Kapitel 2 Seite 20

Neue Klasse: Maler Öffnen Sie in BlueJ das Projekt shapes und erzeugen Sie eine neue Klasse mit Namen Maler Editieren Sie diese Praktische Informatik I, HWS 2007, Kapitel 2 Seite 21

Die Klasse Maler Ausnahmsweise löschen wir alles, bis auf die Zeile class Maler Und die geschweiften Klammern { } Die Klammern sind die Wände unserer Malerklasse. Dazwischen kommen die Instruktionen, wie ein Maler konstruiert wird. Praktische Informatik I, HWS 2007, Kapitel 2 Seite 22

Was braucht ein Maler Jeder Maler d.h. jedes Objekt der Klasse Maler muss... Kreise, Quadrate und Dreiecke erzeugen und jedem einen Namen geben... eine Methode z.b. zeichnehaus( ) haben, die die Objekte an die richtige Stelle verschiebt sie vergrößert/verkleinert sichtbar macht ihre Farbe wechselt Praktische Informatik I, HWS 2007, Kapitel 2 Seite 23

Konstruktion der Objekte Die Erzeugung von Objekten besteht aus zwei Schritten Ein Name für das Objekt wird registriert Ein neues Objekt wird erzeugt und unter diesem Namen gespeichert Circle sonne; Registriere den Namen sonne für ein noch zu schaffendes Objekt der Klasse Circle. sonne = new Circle( ); Konstruiere ein neues Objekt der Klasse Circle und nenne es sonne Vorsicht: Java unterscheidet zwischen Groß- und Kleinschreibung.... CIRCLE Circle circle, sonne Sonne SOnne Praktische Informatik I, HWS 2007, Kapitel 2 Seite 24

Registrierung mit Erzeugung Jedes Objekt wird erzeugt und getauft. Wir können das auch in einem Schritt erledigen, z.b. ein neues Objekt der Klasse Circle erzeugen und diesem den Namen sonne geben: Circle sonne = new Circle( ); Registriere sonne als Name für ein Objekt der Klasse Circle Ein neues konstruiertes Objekt der Klasse Circle. = ; Unter dem soeben registrierten Namen sonne wird das neu konstruierte Objekt der Klasse Circle abgespeichert. Praktische Informatik I, HWS 2007, Kapitel 2 Seite 25

Die Klasse Maler mit allen Objekten Die Klasse lässt sich schon compilieren, und man kann bereits Objekte erzeugen... Praktische Informatik I, HWS 2007, Kapitel 2 Seite 26

Maler klecksel Im Kontextmenü der Klasse Maler finden wir die Methode new und erzeugen klecksel Dann inspizieren wir das Objekt klecksel Praktische Informatik I, HWS 2007, Kapitel 2 Seite 27

Inspektion von klecksel Der Inspektor findet bei klecksel die Felder sonne wand fenster dach Dies sind keine Zahlen, sondern Objekte der Klassen Circle Square Square Triangle. Ein Doppelklick folgt dem Link/Pfeil zu dem betreffenden Objekt, einem Circle: Praktische Informatik I, HWS 2007, Kapitel 2 Seite 28

Jetzt soll der Maler malen Wir müssen dem Maler eine Methode zur Verfügung stellen, ein Haus zu malen. Eine Java-Methode hat stets einen Kopf bestehend aus einen Ergebnistyp hier void einen Namen z.b. malehaus eine Parameterliste - hier leer, also ( )... und einen Rumpf, in dem steht, was sie tun soll, z.b. sonne.makevisible(); sonne.changecolor( yellow ) ; sonne.movehorizontal(100); dach.changesize(200); dach.makevisible();... etc.... Praktische Informatik I, HWS 2007, Kapitel 2 Seite 29

Java-Methoden der Kopf Der Kopf einer Java-Methode: void malehaus( ) Typ des Berechnungsergebnisses. Wir wollen keinen Wert berechnen, daher void Selbstgewählter Name. Konvention: kleingeschrieben Liste der Parameter Darf nicht fehlen, auch wenn kein Parameter benötigt. Köpfe anderer Methoden void maleaquarium( ) void makevisible( ) void changecolor(string farbe) void movehorizontal(int distance) Eine mögliche Methode für Maler Eine Methode von von Circle, Square,.. Eine Methode mit String Parameter Eine Methode mit int Parameter Praktische Informatik I, HWS 2007, Kapitel 2 Seite 30

Java Methoden der Rumpf Der Rumpf einer Java-Methode heißt auch Block. Er besteht aus 1. einer öffnenden Klammer : { 2. einer Folge von Anweisungen, z.b.: Variablendeklarationen Zuweisungen Schleifen Aufrufen von void-methoden, z.b.: sonne.makevisible(); dach.changesize(100,150); sonne.movehorizontal(100);... 3. einer schließenden Klammer: } Praktische Informatik I, HWS 2007, Kapitel 2 Seite 31

Erste Malversuche von klecksel Wir erzeugen ein Objekt der Klasse Maler und nennen es klecksel. Im Kontextmenü von klecksel finden wir die Methode void malehaus( ) Und siehe da... Sonnenaufgang auf dem Campingplatz? Na ja, für den Anfang geht s doch, oder...? Praktische Informatik I, HWS 2007, Kapitel 2 Seite 32