Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von...

25
Erste Programme mit Java Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen

Transcript of Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von...

Page 1: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Erste Programme mit JavaErste Programme mit Java

Helmut Paulus Speyer, 08.05.09

Grundelemente von Java

Entwicklung von GUI-Anwendungen mit dem Java-Editor

Übungen

Page 2: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Teil 1Teil 1

Grundelemente von Java

Page 3: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Was ist JavaWas ist Java3

Eigenschaften von Java

Java ist eine objektorientierte Programmiersprache, die universell einsetzbar und für die Industrie als robuste Programmiersprache interessant ist.

Bytecode und virtuelle Maschine

Der Java-Compiler erzeugt keinen Maschinencode für eine spezielle Plattform und einen bestimmten Prozessor, sondern einen so genannten Bytecode (Zwischencode), für eine virtuelle Maschine.

Der Bytecode ist plattformunabhängig. Auf dem jeweiligen System wird er von der Laufzeitumgebung, der Java Virtual Machine (JVM), übersetzt und ausgeführt.

Page 4: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

VorbereitungVorbereitung4

Java-Development-Kit (JDK) der Firma Sun, sowie die zugehörige Dokumentation und Tutorial

Als Alternative zum Java-Compiler javac.exe kann der schnellere Compiler jikes.exe dienen

Entwicklungsumgebung:

Es genügt im Prinzip jeder Texteditor (Notepad usw., aber nicht zu empfehlen)

Java-Editor (speziell für die Schule entwickelt)Ähnelt sehr stark der Delphi-DIE

Mächtige Bibliotheken stehen zur Verfügung

Werkzeuge

Java Hilfen (kostenlos zum Download)

Java Tutorials der Firma SUN

Handbuch der Java-Programmierung von Guido Krüger und Thomas Stark

Download: http://www.javabuch.de/

Java ist auch eine Insel von Christian Ullenboom

Download: http://openbook.galileocomputing.de/javainsel8/

Page 5: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Grundstruktur einer Java AnwendungGrundstruktur einer Java Anwendung5

Die Main-Methode innerhalb der Klasse Quadrat wirkt als Hauptprogramm.

Quellcode einer Konsolenanwendung im Java-Editor

Page 6: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Klassen, Dateien und ProgrammeKlassen, Dateien und Programme6

Java-Programme sind aus Klassen aufgebaut.

• Eine Datei pro Klasse

• Quelltext: Dateiname = Klassenname.java

class Quadrat { public static void main(String[] args) { System.out.println(…); } }

Kennzeichen

• Es gibt kein separates Hauptprogramm

• Eine spezielle Methode einer (beliebigen) Klasse dient als Hauptprogramm:

public static void main(String args[])

• Der Compiler erzeugt class-Dateien: Klassenname.class

• Diese werden von der VM ausgeführt.Aufruf: java Klassenname (ohne class)

Page 7: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Java-SyntaxJava-Syntax

Anweisungsblock

{

}

7

Zuweisung

=

Vergleich

==

Variablendeklaration

Überall im Programm möglich!

Syntax: int index;

Initialisierung mit Wert bei der Deklaration möglich:

Syntax: int index = 0;

Gültigkeitsbereich

Ab der Zeile nach der Deklaration bis zum Ende des Blocks, in dem sie deklariert wurde…

If (a > 0 ){

int b = a;

}

Page 8: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Java-SyntaxJava-Syntax8

Fallunterscheidungenif (Bedingung)

{ … }

else

{ … }

while Schleifewhile (Bedingung)

{

Anweisung;

}

Do–while – Schleifedo {

Anweisung;

} while (Bedingung);

For –Schleifefor (int i=1; i<=n; i=i+1){ Anweisung;}

Array

int liste[] = new int[5];

Speicher für 5 Variablen vom Typ int;

Die Indizierung beginnt immer mit 0 !

Länge eine Arrays: liste.length

Zugriff auf einzelne Felder

for (int i=0; i<5; i=i+1)

{

liste[i] = i*i;

}

Page 9: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Java-SyntaxJava-Syntax9

Funktionen/Prozeduren

• Keine Aufteilung in Interface und Implementierung

• können an beliebiger Stelle innerhalb einer Klassendefinition stehen.

• heißen in der Sprache der Objektorientierten Modellierung einheitlich ‚Methoden‘

int quadrat(int i)

{

return i*i;

}

Prozeduren Funktionen:

Rückgabewert

Rückgabetyp

void tueWas(int i)

{

}

Prozeduren und Funktionen unterscheiden sich in Java nur durch den Rückgabetyp.

Schlüsselwort

Page 10: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Java-GrundlagenJava-Grundlagen10

Bezeichner

Erlaubt sind die Elemente des gesamten Unicode-Zeichensatzes

Einschränkungen

Das erste Symbol muss ein Buchstabe sein und keine Ziffer.

Leerzeichen sind in Bezeichnern nicht erlaubt, ebenso viele Sonderzeichen.

Java ist kontextsensitiv, d. h. Groß-/Kleinschreibung ist relevant .

Logische Operatoren :

• Konjunktion: &&

• Disjunktion: ||

• Negation: !

• „ungleich“: !=

Beispiele: Bedingungen

(a > 0) && (b > 0)

(a == 0) || !(b == 0)

Page 11: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Java-GrundlagenJava-GrundlagenPrimitive Datentypen

int, long : Ganze Zahlen (einfache bzw. doppelte Genauigkeit)

float, double : Fließkommazahlen (einfache bzw. doppelte Genauigkeit)

boolean : Wahrheitswerte (true, false)

11

Zeichenketten werden durch Objekte der Klasse String repräsentiert. Strings sind, nachdem sie initialisiert sind, nicht mehr veränderbar! Die Klasse String stellt eine Reihe von Methoden zur Bearbeitung von Strings zur

Verfügung. Strings können mit dem ‚+‘ Operator zu einem neuen String zusammengefügt

werden.

Beispiel String a = “Hallo Welt”; // Erzeugung und Initialisierung

a = “Schöne Welt”;

String neu = a + “ heute”;

String-Objekte selbst lassen sich nicht verändern, aber eine Referenz kann auf ein anderes String-Objekt gelegt werden.

Länge des Strings: int len = a.length();

Zeichenketten (Strings)

Page 12: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Java-GrundlagenJava-Grundlagen12

Typumwandlungen

Primitiver Datentyp Datentyp String

Funktion: String.valueOf()

Beispiele:

String zahl = String.valueOf( 10 );        

String pi = String.valueOf( Math.PI );

Datentyp String Primitiver Datentyp

Funktionen: Integer.parseInt(String s ), Double.parseDouble( String s ), …

Beispiel:

String s = “3945“;  

int i = Integer.parseInt( s );  

Page 13: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Java-GrundlagenJava-Grundlagen

+, -, *, /

Der Ergebnistyp hängt von den Typen der Operanden ab!

Bei gleichen Typen wird der Typ beibehalten.

Beispiel: 1 / 2 ergibt 0, da beide Operanden vom int - Typen sind.

Bei unterschiedlichen Typen, beispielsweise int und float, so entspricht der Ergebnistyp des Teilausdrucks dem größeren der beiden Operanden

% Modulo – Operator

Arithmetische Operatoren :

13

int long float double

Zuweisungskompatibilität zwischen primitiven Datentypen

Erlaubt sind Zuweisung in Pfeilrichtung:

Mit Hilfe des Type - Cast – Operators können Typumwandlungen auch entgegen den Pfeilrichtungen vorgenommen werden, als Zuweisungen von größeren an kleinere numerische Typen.

Schema: (type) a wandelt den Ausdruck a in einen Ausdruck vom Typ type um

Beispiel: int wuerfelZahl = 1 + (int) (Math.random()*6);

Type-Cast-Operator

Ausdruck vom Typ doubleTyp int

Page 14: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Teil 2Teil 2

Entwicklung von GUI-Anwendungen mit dem Java-Editor

Page 15: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

GUI-AnwendungenGUI-Anwendungen15

GUI-Anwendungen benutzen AWT (Abstract Window Toolkit)- bzw. Swing-Komponenten

Das Formular (Frame) enthält Komponenten (GUI-Objekte) vom Typ:

• Frame, TextField, Button, Label, Panel

Java ist kontextsensitiv!

Es gilt die Vereinbarung, dass Klassennamen stets mit einem Großbuchstaben beginnen, Objektnamen (Variablen, Prozeduren…) mit kleinen!

tFZahl1 : Textfield

: RechnerGUI

bCL : ButtonlAnzeige : Label

Page 16: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Ein- und Ausgabe von DatenEin- und Ausgabe von Daten16

public void bPlus_ActionPerformed(ActionEvent evt)

{

//Eingabe – Übernahme aus den GUI-Objekten

double a = Double.parseDouble(tFzahl1.getText());

double b = Double.parseDouble(tFzahl2.getText());

//Verarbeitung

double erg = a + b;

//Ausgabe – Übergababe an die GUI-Objekte

tFErgebnis.setText(Double.toString(erg));

}

Der Zugriff auf die Attribute der Textfelder erfolgt stets mit Hilfe der Methoden

getText() – zur Eingabe

setText() – zur Ausgabe

Da die Daten als Zeichenketten gespeichert sind, müssen sie zur weiteren Verarbeitung in Zahlentypen umgewandelt werden.

Page 17: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Die Klasse „RechnerGUI“ Die Klasse „RechnerGUI“ 17

import java.awt.*;import java.awt.event.*;

public class RechnerGUI extends Frame

{

// Anfang Attribute

// Ende Attribute

public RechnerGUI(String title)

{

// Frame-Initialisierung

………….

// Anfang Komponenten

// Ende Komponenten

setResizable(false);

setVisible(true);

}

// Anfang Methoden

// Ende Methoden

public static void main(String[] args)

{

new RechnerGUI("Rechner");

}

}

Einbinden der AWT-Komponenten

Deklaration der Klasse RechnerGUI als Erweiterung der Klasse Frame (extends)

Konstruktor : Initialisierung, Erzeugung und Initialisierung der weiteren GUI-Objekte

Ereignisbearbeitung und weitere Methoden

Die main-Methode ruft den Konstruktor auf, wodurch das Programmformular erzeugt wird.

Die Datei wird unter dem Namen der Klasse RechnerGUI gespeichert (RechnerGUI.java).

Page 18: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

public class Rechner extends Frame {

// Anfang Attribute

private TextField tFzahl1 = new TextField();

private TextField tFzahl2 = new TextField();

private TextField tFErgebnis = new TextField();

private Button bPlus = new Button();

// Ende Attribute

QuellcodeQuellcode

Im Abschnitt Komponenten werden Größe und Beschriftung der Komponenten gesetzt; alle GUI-Objekte werden dem Panel cp (content-panel) zugeordnet.

Für den Schalter bPlus wird ein Ereignis-prozedur für das Anklicken des Schalters implementiert.

Die Ereignisprozedur ruft die Prozedur ActionPerformed auf, die im Abschnitt Ereignisse zu implementieren ist.

Mit dem GUI-Designer wird die Benutzungsoberfläche erstellt.

Die Komponenten werden als Attribute des Formulars deklariert und erzeugt.

18

bPlus.setBounds(48, 136, 27, 25);

bPlus.setLabel("+");

bPlus.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent evt)

{

bPlus_ActionPerformed(evt);

}

});

cp.add(bPlus);

Page 19: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Ereignismodell von JavaEreignismodell von JavaBeim Anklicken eines Schalters wird ein Ereignis ausgelöst, das ActionEvent genannt wird.

Bei Java werden die Ereignisse an so genannte Ereignislauscher (ActionListener) geschickt.

Ein Objekt, das auf ein Ereignis reagieren will, muss sich bei einem solchen ActionListener anmelden. Der Schalter erledigt dies mit der Methode addActionLister. Der dabei übergebene ActionListener enthält lediglich die Ereignismethode actionPerformed, die beim Anklicken ausgeführt wird.

19

buttonbutton ActionListener

ActionListener

ActionEvent

bPlus.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

bPlus_ActionPerformed(evt);}});

bPlus_ActionPerformed(ActionEvent evt) {}

ruft auf

ruft auf

Der Java-Editor erzeugt automatisch den notwendigen Quellcode.Der Java-Editor erzeugt automatisch den notwendigen Quellcode.

Page 20: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

ÜbungenÜbungen

Ergänzen Sie das Programm Rechner.

Implementieren Sie weitere Funktionen: z. B.: ggT(a,b) als Funktion

20

Page 21: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Teil 3Teil 3

Übungen

Helmut Paulus Speyer, 5.-7.11.07

Page 22: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Aufgabe 1Aufgabe 122

Wann werde ich Millionär?

Anfordungen:

Nach Eingabe von Anfangskapital und Zins-satz wird berechnet, nach wie viel Jahren das Kapital einen bestimmten Endbetrag erreicht hat.

Die Zinsen werden jährlich gutgeschrieben (Zinseszins).

Page 23: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Aufgabe 2Aufgabe 223

Würfelspiel

Entwickeln Sie ein Programm das folgendes Spiel simuliert.

Man wirft vier Würfel und gewinnt, wenn mindestens 2 Würfel die Augenzahl 5 oder 6 zeigen.

Anforderungen:

Die vier Augenzahlen werden angezeigt und es wird feststellt, ob man gewonnen hat.

Page 24: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Aufgabe 3Aufgabe 324

Doppelwürfel

In der Wahrscheinlichkeitsrechnung werden oft Würfelexperimente untersucht. Dabei interessiert man sich für die absolute und relative Häufigkeit des Auftretens bestimmter Ergebnisse, z.B. der Augensumme 5 beim Wurf mit zwei Würfeln. Dazu würfelt man z.B. 1000 mal mit zwei Würfeln und zählt, wie oft bestimmte Ergebnisse auftreten.

Die Durchführung dieses Zufallsexperiments ist langwierig und langweilig.

Aufgabe:

Entwickeln Sie ein Java-Programm, das diese Aufgabe erledigt.

Anforderungen:

1.Bei jedem Wurf werden die beiden Augenzahlen addiert und die zugehörige Zählvariable um 1 erhöht. Es gibt insgesamt 11 solcher Zählvariablen vom Typ int, da die Augenzahlen 2 bis 12 auftreten können.

2.Die Ergebnisse sollen in einem mehrzeiligen Textfeld (TextArea) ausgeben werden.

Page 25: Erste Programme mit Java Helmut Paulus Speyer, 08.05.09 Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen.

Links und LiteraturLinks und Literatur

Bildungsserver Hessen:

http://lernen.bildung.hessen.de/informatik/javaeditor/

Bildungsserver Rheinland-Pfalz

Fortbildungsmaterial:

http://informatik.bildung-rp.de/fortbildungsmaterial/objektorientiertes-programmieren-mit-java.html

Handbuch der Java-Programmierung von Guido Krüger und Thomas Stark http://www.javabuch.de/

Java ist auch eine Insel von Christian Ullenboom http://openbook.galileocomputing.de/javainsel8/

25