Modul.Java.Grundkurs (02.03. bis 27.03.2009) Aufbau einer typischen Java-Datei 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 [package mein.paket;] Jede Klasse kann nur zu einem Paket gehören [import paketordner.KlassenName;] [import paketorder.*;] Einbinden Klassen anderer Pakete * ersetzt nur Klassennamen, nicht Bestandteile des Paketnamens public class KlassenName { Jede Java-Datei darf nur eine öffentliche Klassendatei enthalten int zahl; KlassenName globaleReferenz; Deklaration eines Feldes Deklaration einer Referenz auf ein Objekt einer anderen Klasse [Zugriff/Modus] { zahl = 0; zeichenKette = null; } Initalisierungsblock für Klassenfelder, public KlassenName() { ... } Öffentlicher Konstruktor ohne Parameter public KlassenName(Parameterliste) { ... } Überladener öffentlicher Konstruktor mit Parameterliste [Rückgabe] tueEtwas() ... } Methodendeklarationen ohne Parameterliste { [Rückgabe] tueEtwas(Parameterliste) { ... } bezeichner(new KlasseName() { ... } ;) class InnereKlasse { ... } public static void main(String[] args) { ... } Überladene Methode mit Parameterliste Anonyme Klasse, von der direkt ein Objekt erzeugt wird – kann daher nur einmal instantiiert werden Innere bzw. Lokale Klasse, die in der umgebenden Klasse beliebig instantiiert werden kann main-Methode startet Programm } class KlassenName { ... } Weitere, nicht-öffentliche Klasse in dieser Datei Modul.Java.Grundkurs (02.03. bis 27.03.2009) Klassendeklaration Klassenkopf [Zugriff] [Modus] public private final abstract class Name oder Parametertypen T [beerbt Oberklasse] [verwendet Interface 1, Interface 2, usw.] KlassenName <T1, T2, usw.> <?> <? extends Klasse> <? super Klasse> [extends OberKlasse] [implements Interface1, Interface 2, usw.] { Klassenrumpf Felddeklaration 1; Felddeklaration 2; Felddeklaration n; Methodendeklaration 1; Methodendeklaration 2; Methodendeklaration n; [return Wert;] } Modul.Java.Grundkurs (02.03. bis 27.03.2009) Methodendeklaration Methodendeklaration Methodensignatur Parameterliste [Zugriff] [Modus] Rückgabe Name ( public protected private static, final, abstract, synchronized keine bei Konstruktoren void elementarer Datentyp komplexer Datentyp methodenName Datentyp1 parameter1, usw. Datentyp ... parameterArray Methodenrumpf { Anweisungsblock 1; Anweisungsblock 2; Anweisungsblock n; } ) [Ausnahmebehandlung] [throws ExceptionObjekt] Modul.Java.Grundkurs (02.03. bis 27.03.2009) Java Sprachkern : Packages der Standard-Edition (SE) java.lang (Fundamentalklasse) javax erweiterter Sprachkern Javas, der u.A. beinhaltet: java.applet java.beans java.io (Anwendungen für Browser) (Java-BeanArchitektur) (Stream und NichtStream-Klassen) java.math java.net (Arithemtik) (Netzwerk) java.sql (Datenbanken) javax.accessibility (behindertengerechter Zugriff) javax.crypto (Verschlüsselung) javax.imageio (Bildverarbeitung) javax.sound (Audio-Klassen) javax.print (Druckservice) javax.xml (XML-Verarbeitung) java.nio (zusätzliche AusgabeKlassen) java.security (Sicherheit und Zertifikate) javax.swing (Swing-Toolset für GUI-Elemente), zu dem u.A. die folgenden Klassen-Pakete zählen: - swing.border - swing.colorchooser - swing.filechooser - swing.plaf - swing.table - swing.text - usw. java.awt java.text (internationale Textformate) java.util (Datum, Listen) Grundlage für die Gestaltung grafischer Oberflächen mit Java, die u.A. beinhaltet: java.awt.Event (Eventbehandlung) java.awt.Font (Schriftarten) java.awt.Graphics (grafische Ausgabe) java.awt.Image (Bildbearbeitung) java.awt.print (Druckaufträge) Java Core Java eXtension Modul.Java.Grundkurs (02.03. bis 27.03.2009) Abstract Window Toolkit, Interfaces und Java eXtendend java.awt Component java.awt.event EventListener Container Frame JTextComponent ... JFrame JWindow JLabel JButton Dialog JDialog AbstractButton JMenuItem ... javax.swing KeyListener MouseListener WindowListener z.B. TextAction z.B. KeyAdapter z.B. MouseAdapter z.B. WindowAdapter Panel Window JComponent ActionListener Applet JApplet JScrollBar JToggleButton JCheckBox JLayeredPane ... JRadioButton JSeperator ...