1 / 25

Erste Programme mit Java

Erste Programme mit Java. Grundelemente von Java Entwicklung von GUI-Anwendungen mit dem Java-Editor Übungen. Helmut Paulus Speyer, 08.05.09. Teil 1. Grundelemente von Java. Was ist Java. Eigenschaften von Java

sailor
Download Presentation

Erste Programme mit Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Teil 1 Grundelemente von Java

  3. Was ist Java 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.

  4. Vorbereitung Werkzeuge • 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 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/

  5. Grundstruktur einer Java Anwendung Quellcode einer Konsolenanwendung im Java-Editor Die Main-Methode innerhalb der Klasse Quadrat wirkt als Hauptprogramm.

  6. Klassen, Dateien und Programme • 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)

  7. Java-Syntax Zuweisung = Vergleich == Anweisungsblock { … } Variablendeklaration Überall im Programm möglich! • Syntax: intindex; Initialisierung mit Wert bei der Deklaration möglich: • Syntax: intindex = 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; … } …

  8. Java-Syntax Fallunterscheidungen if (Bedingung) { … } else { … } while Schleife while (Bedingung) { Anweisung; } Do–while – Schleife do { Anweisung; } while (Bedingung); For –Schleife for (int i=1; i<=n; i=i+1) { Anweisung; } Array intliste[] = newint[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; }

  9. Java-Syntax Prozeduren Funktionen: voidtueWas(int i) { … } intquadrat(int i) { returni*i; } Rückgabetyp Rückgabewert Schlüsselwort Prozeduren und Funktionen unterscheiden sich in Java nur durch den Rückgabetyp. • 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‘

  10. Java-Grundlagen 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)

  11. Java-Grundlagen PrimitiveDatentypen int, long : Ganze Zahlen (einfache bzw. doppelte Genauigkeit) float, double : Fließkommazahlen (einfache bzw. doppelte Genauigkeit) boolean : Wahrheitswerte (true, false) Zeichenketten (Strings) • 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();

  12. Java-Grundlagen 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 );

  13. Java-Grundlagen ArithmetischeOperatoren : Zuweisungskompatibilität zwischen primitiven Datentypen Erlaubt sind Zuweisung in Pfeilrichtung: intlong float double 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); Typint Type-Cast-Operator AusdruckvomTypdouble

  14. Teil 2 Entwicklung von GUI-Anwendungen mit dem Java-Editor

  15. GUI-Anwendungen GUI-Anwendungen benutzen AWT (Abstract Window Toolkit)- bzw. Swing-Komponenten : RechnerGUI tFZahl1 : Textfield lAnzeige : Label bCL : Button • 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!

  16. Ein- und Ausgabe von Daten publicvoidbPlus_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.

  17. Die Klasse „RechnerGUI“ import java.awt.*; importjava.awt.event.*; publicclassRechnerGUIextends Frame { // Anfang Attribute // Ende Attribute publicRechnerGUI(String title) { // Frame-Initialisierung …………. // Anfang Komponenten // Ende Komponenten setResizable(false); setVisible(true); } // Anfang Methoden // Ende Methoden publicstaticvoidmain(String[] args) { newRechnerGUI("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 RechnerGUIgespeichert (RechnerGUI.java).

  18. Quellcode publicclassRechnerextends 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 Mit dem GUI-Designer wird die Benutzungsoberfläche erstellt. Die Komponenten werden als Attribute des Formulars deklariert und erzeugt. bPlus.setBounds(48, 136, 27, 25); bPlus.setLabel("+"); bPlus.addActionListener(newActionListener() { publicvoidactionPerformed(ActionEvent evt) { bPlus_ActionPerformed(evt); } }); cp.add(bPlus); 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.

  19. Ereignismodell von Java Beim 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. ActionEvent button ActionListener bPlus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { bPlus_ActionPerformed(evt);}}); ruft auf ruft auf bPlus_ActionPerformed(ActionEvent evt) {} Der Java-Editor erzeugt automatisch den notwendigen Quellcode.

  20. Übungen • Ergänzen Sie das Programm Rechner. • Implementieren Sie weitere Funktionen: z. B.: ggT(a,b) als Funktion

  21. Teil 3 Übungen Helmut Paulus Speyer, 5.-7.11.07

  22. Aufgabe 1 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).

  23. Aufgabe 2 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.

  24. Aufgabe 3 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: 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. Die Ergebnisse sollen in einem mehrzeiligen Textfeld (TextArea) ausgeben werden.

  25. Links 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/

More Related