Script Java
Script Java Script Java
2.1 Programmaufbau, Attribute und Methoden Neben den in der Attributdeklaration aufgeführten Objekten gibt es aber noch ein weiteres Objekt, welches wir benennen. Es heisst button und ist eine Instanz der Klasse Button. Button button; Da die Instanz button innerhalb der Methode UserFrame() deklariert wurde und nicht innerhalb der Klasse UserFrame, handelt es sich nicht um ein Attribut der Klasse UserFrame. Dies hat zur Folge, dass es nur innerhalb der Methode selbst „bekannt“ ist und auch nur dort angesprochen werden kann. Der Aufruf setTitle("Business Cards"); bewirkt, dass in der Titelleiste eines Objekts der Klasse UserFrame der Text „Business Cards“ erscheint. Hierbei handelt es sich im Gegensatz zu der Methode place(), welche durch den Programmierer neu deklariert wurde, um eine in der Klassenbibliothek bereits vorhandenen Methode. Damit wir sämtliche Labels, TextFields und den einen Button mittels place() absolut positionieren können, also konkrete x-/ und y-Werte angeben dürfen, ist der Aufruf setLayout(null); notwendig. Es handelt sich bei setLayout() wiederum um eine im package awt deklarierte Methode. setSize(200,300); setzt die Breite einer Instanz der Klasse UserFrame auf 200 pixels und die Höhe auf 300 pixels. setResizable(false); macht das Ändern der Grösse eines Objektes der Klasse UserFrame durch Ziehen mit der Maus an einer Ecke des Fensters unmöglich. setVisible(true); macht ein Objekt der Klasse UserFrame überhaupt erst sichtbar. Es lässt sich nun fragen, wer der Empfänger der zuvor behandelten Botschaften ist. Wenn nicht explizit ein Empfänger angegeben ist, dann wird die Botschaft an eine Instanz jener Klasse gesandt, in welcher der Aufruf erfolgt. Auf diese Problematik wird noch in Abschnitt 6.1.1.3 und 6.1.2.3 weiter eingegangen. In unserem Beispiel ist auf alle Fälle, wenn keine explizite Angabe gemacht wird, die in Abbildung 2-2 ersichtliche Instanz des UserFrame der Empfänger der Botschaften. In unserem Beispielprogramm werden hauptsächlich Methoden aus der Klassenbibliothek verwendet. Neu deklariert wurden durch den Programmierer lediglich die Klassen 30
2.1 Programmaufbau, Attribute und Methoden UserFrame und TestProg, die Attribute firstName, familyName, street, zipCode und city und die Methoden place(), UserFrame() und actionPerformed(). Eine Methode aus der Klassenbibliothek erkennt man daran, dass sie nicht im Programm deklariert wurde. Bei Unsicherheit hilft ansonsten auch ein Blick in Anhang B, wo sämtliche in diesem Skript verwendete Elemente aus der Java- Klassenbibliothek aufgelistet werden. Siehe auch: 2.1.2.1, 2.1.2.5, Anhang B 2.1.1.4 Event Handling Graphische Benutzeroberflächen erlauben eine Interaktion mit dem Benutzer. So kann in unserem Beispielprogramm der Benutzer seine erfassten Daten durch Aktivieren des Buttons PRINT auf der Konsole ausdrucken lassen. Wenn der Benutzer den Button nicht betätigt, passiert nichts. Diese Art der Interaktion wird in Java durch das sogenannte Event Handling möglich. Auf das Event Handling wird noch in den Abschnitten 5.1.1.1 und 5.1.2.1 eingehend eingegangen. Im Programm haben die Anweisung button.addActionListener(), die Methode actionPerformed() und das Schlüsselwort implements ActionListener im Kopf der Klasse UserFrame mit diesem Event Handling zu tun. Die Anweisung button.addActionListener(this); bewirkt, dass jedesmal, wenn der Button PRINT aktiviert wird, die Methode actionPerformed() aufgerufen wird. 2.1.1.5 String Concatenation public void actionPerformed(ActionEvent event){ System.out.println(firstName.getText()+" "+familyName.getText()); System.out.println(street.getText()); System.out.println(zipCode.getText()+" "+city.getText()); System.out.println(); } Das Versenden der Botschaft println() an System.out hat zur Folge, dass der als Parameter übergebene Text auf der Konsole ausgedruckt wird und danach ein Zeilenumbruch stattfindet. Hierbei bezeichnet System.out das momentane Ausgabemedium, also die Konsole (Java Console). Wird kein Parameter übergeben, so wird eine Leerzeile gedruckt. Das letzte println() hat also zur Folge, dass beim Ausdruck mehrerer Personen deren Adressen durch einen Abstand voneinander getrennt sind. Schauen wir uns genauer den Parameter des ersten Methodenaufrufs an: 31
- Seite 1 und 2: I nhaltsverzeichnis 1 EINFÜHRUNG..
- Seite 3 und 4: 3.3 ZUSAMMENFASSUNG ...............
- Seite 5 und 6: 11.1 TURTLE-GEOMETRIE..............
- Seite 7 und 8: 1.1 Objektorientierung 1Objektorien
- Seite 9 und 10: 1.1 Objektorientierung 1.1.3 Objekt
- Seite 11 und 12: 1.2 Programm Auf Programmebene bewi
- Seite 13 und 14: 1.2 Programm Rotkäppchen.backKuche
- Seite 15 und 16: 1.2 Programm Anweisungen ausführen
- Seite 17 und 18: 1.3 Java Für einen Java-Programmie
- Seite 19 und 20: 1.4 Zusammenfassung So wie man bei
- Seite 21 und 22: 2.1 Programmaufbau, Attribute und M
- Seite 23 und 24: 2.1 Programmaufbau, Attribute und M
- Seite 25 und 26: 2.1 Programmaufbau, Attribute und M
- Seite 27 und 28: 2.1 Programmaufbau, Attribute und M
- Seite 29: 2.1 Programmaufbau, Attribute und M
- Seite 33 und 34: 2.1 Programmaufbau, Attribute und M
- Seite 35 und 36: 2.1 Programmaufbau, Attribute und M
- Seite 37 und 38: 2.2 Checkbox } } place(familyName=n
- Seite 39 und 40: 2.3 Vererbung, Konstruktor und Rede
- Seite 41 und 42: 2.3 Vererbung, Konstruktor und Rede
- Seite 43 und 44: 2.3 Vererbung, Konstruktor und Rede
- Seite 45 und 46: 2.3 Vererbung, Konstruktor und Rede
- Seite 47 und 48: 2.3 Vererbung, Konstruktor und Rede
- Seite 49 und 50: 2.3 Vererbung, Konstruktor und Rede
- Seite 51 und 52: 2.4 Instanzvariablen und Klassenvar
- Seite 53 und 54: 2.4 Instanzvariablen und Klassenvar
- Seite 55 und 56: 2.5 Zusammenfassung Im Gegensatz da
- Seite 57 und 58: 3.1 int, boolean und Programmstrukt
- Seite 59 und 60: 3.1 int, boolean und Programmstrukt
- Seite 61 und 62: 3.1 int, boolean und Programmstrukt
- Seite 63 und 64: 3.1 int, boolean und Programmstrukt
- Seite 65 und 66: 3.1 int, boolean und Programmstrukt
- Seite 67 und 68: 3.1 int, boolean und Programmstrukt
- Seite 69 und 70: 3.1 int, boolean und Programmstrukt
- Seite 71 und 72: 3.1 int, boolean und Programmstrukt
- Seite 73 und 74: 3.1 int, boolean und Programmstrukt
- Seite 75 und 76: 3.1 int, boolean und Programmstrukt
- Seite 77 und 78: 3.1 int, boolean und Programmstrukt
- Seite 79 und 80: 3.1 int, boolean und Programmstrukt
2.1 Programmaufbau, Attribute und Methoden<br />
UserFrame und TestProg, die Attribute firstName, familyName, street,<br />
zipCode und city und die Methoden place(), UserFrame() und<br />
actionPerformed(). Eine Methode aus der Klassenbibliothek erkennt man daran,<br />
dass sie nicht im Programm deklariert wurde. Bei Unsicherheit hilft ansonsten auch ein<br />
Blick in Anhang B, wo sämtliche in diesem Skript verwendete Elemente aus der <strong>Java</strong>-<br />
Klassenbibliothek aufgelistet werden.<br />
Siehe auch: 2.1.2.1, 2.1.2.5, Anhang B<br />
2.1.1.4 Event Handling<br />
Graphische Benutzeroberflächen erlauben eine Interaktion mit dem Benutzer. So kann in<br />
unserem Beispielprogramm der Benutzer seine erfassten Daten durch Aktivieren des<br />
Buttons PRINT auf der Konsole ausdrucken lassen. Wenn der Benutzer den Button nicht<br />
betätigt, passiert nichts. Diese Art der Interaktion wird in <strong>Java</strong> durch das sogenannte Event<br />
Handling möglich. Auf das Event Handling wird noch in den Abschnitten 5.1.1.1 und<br />
5.1.2.1 eingehend eingegangen. Im Programm haben die Anweisung<br />
button.addActionListener(), die Methode actionPerformed() und das<br />
Schlüsselwort implements ActionListener im Kopf der Klasse UserFrame mit<br />
diesem Event Handling zu tun.<br />
Die Anweisung<br />
button.addActionListener(this);<br />
bewirkt, dass jedesmal, wenn der Button PRINT aktiviert wird, die Methode<br />
actionPerformed() aufgerufen wird.<br />
2.1.1.5 String Concatenation<br />
public void actionPerformed(ActionEvent event){<br />
System.out.println(firstName.getText()+" "+familyName.getText());<br />
System.out.println(street.getText());<br />
System.out.println(zipCode.getText()+" "+city.getText());<br />
System.out.println();<br />
}<br />
Das Versenden der Botschaft println() an System.out hat zur Folge, dass der als<br />
Parameter übergebene Text auf der Konsole ausgedruckt wird und danach ein<br />
Zeilenumbruch stattfindet. Hierbei bezeichnet System.out das momentane<br />
Ausgabemedium, also die Konsole (<strong>Java</strong> Console). Wird kein Parameter übergeben, so<br />
wird eine Leerzeile gedruckt. Das letzte println() hat also zur Folge, dass beim<br />
Ausdruck mehrerer Personen deren Adressen durch einen Abstand voneinander getrennt<br />
sind.<br />
Schauen wir uns genauer den Parameter des ersten Methodenaufrufs an:<br />
31