Crashkurs Java Datenbankanwendungsprogrammierung - Denny Priebe
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung – p.
Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung goto implizites Type-Casting Zeiger, manuelle Speicherverwaltung Datenbankanwendungsprogrammierung – p.
Applikationen gestartet wird Methode main public class Hello { public static void main(String args[]) { System.out.println("Hello"); } } Datenbankanwendungsprogrammierung – p.
Quelltexte Dateien tragen Namen der public-Klasse mit Extension .java nur eine öffentliche Klasse pro Datei erlaubt Übersetzung und Ausführung: $ javac Hello.java $ java Hello Datenbankanwendungsprogrammierung – p.
Blöcke fassen Anweisung zu einem Verbund zusammen eingeschlossen durch { und } Deklarationen innerhalb von Blöcken möglich, Gültigkeitsbereich, Sichtbarkeit Datenbankanwendungsprogrammierung – p.
Einfache Datentypen logischer Typ boolean Ganzzahltypen int, byte, short und long Fließkommatypen float und double Zeichentyp char Datenbankanwendungsprogrammierung – p.
boolean einzigen Werte: true, false keine Casts auf/von andere(n) Typen möglich Operationen: ==, !=, &, |, ˆ, &&, || Datenbankanwendungsprogrammierung – p.
Ganzzahltypen vorzeichenbehaftet byte: 8 Bit, short: 16 Bit, int: 32 Bit, long 64 Bit Operationen (u.a.): ==, !=, =, +, -, *, /, %, ++, - Zuweisungen: +=, -=, *=, /=, ... Datenbankanwendungsprogrammierung – p.
Fließkommatypen float: 32 Bit, double 64 Bit Operationen, Zuweisungen ähnlich oben Literale per default double, sonst Suffix ’f’ Datenbankanwendungsprogrammierung – p.
char speichert einzelne Unicode-Zeichen Zuweisungskompatibel mit int-Werten (Nummer des Zeichens) Literale in einfache Hochkommata char c = ’A’; char d = 65; Datenbankanwendungsprogrammierung – p. 1
Wrapper-Klassen Wrapper-Klasse für jeden einfachen Datentyp Boolean, Byte, Short, Integer, Long, Double, Float, Character Aufgabe: formale Parametern von Standard-Methoden, Konvertierungsmethoden Datenbankanwendungsprogrammierung – p. 1
Strings kein einfacher Datentyp, sondern Objekte von Klassen String für konstante Zeichenketten, StringBuffer für veränderliche Zeichenketten String s = "Ein Test-String"; String s2 = "Ein Test" + "-String"; Datenbankanwendungsprogrammierung – p. 1
Arrays (1) haben Objekt-Eigenschaften, aber keine Konstruktoren; sind auch nicht spezialisierbar Deklaration: int[] demo; // oder auch int demo[]; // geschachtelt: int[][] coord; Datenbankanwendungsprogrammierung – p. 1
Arrays (2) Initialisierung: int[] a1 = {1,2,4,9,16}; int[][] coord = {{0,0}, {0,1}, {1,0}, {1,1 int[][] a2 = {{1}, {2,3}}; // oder mit new: int[] a3; a3 = new int[5]; Datenbankanwendungsprogrammierung – p. 1
Arrays (3) Zugriff: a1[0] = 0; a2[1][1] = 4; Kopien (Referenzen!) über Objekt.clone() oder System.arraycopy() Datenbankanwendungsprogrammierung – p. 1
Variablen, Konstanten Variablendeklaration: Initialisierung möglich Konstanten: zusätzlich final int i; float j, k = 1.2f; final String Titel = "ORDB"; Datenbankanwendungsprogrammierung – p. 1
Objekte vs. Werte Werte: Instanzen einfacher Datentypen Objektvariablen sind Referenzen; flaches Kopieren mittels clone() Paramterübergabe grundsätzlich by value Datenbankanwendungsprogrammierung – p. 1
Anweisungen if, switch, while, do, for break, continue return Datenbankanwendungsprogrammierung – p. 1
if Einschränkung bzgl. C, C++: Bedingung ist boolescher Ausdruck if (a < b) System.out.println(...); else System.out.println(...); Datenbankanwendungsprogrammierung – p. 1
switch Ausführung von Anweisungen in Abhängigkeit eines Selektors Selektor: int oder zuweisungskompatibel switch (x) { case 0: System.out.println(...); break; case 1: ... default: System.out.println(...); Datenbankanwendungsprogrammierung – p. 2 }
while kopfgesteuerte Wiederholung while (a != 5) a++; Datenbankanwendungsprogrammierung – p. 2
do fußgesteuerte Wiederholung do { a++; } while (a != 5); Datenbankanwendungsprogrammierung – p. 2
for Wiederholung für bestimmte Anzahl von Durchgängen Zählvariable mit Initialwert, Bedingung, Inkrementierungsanweisung Initialisierung, Inkrementierung: mehrere Anweisungen durch Komma getrennt möglich for (int i = 0; i < 10; i++) System.out.println(i); Datenbankanwendungsprogrammierung – p. 2
break, continue break verläßt aktuelle Kontrollstruktur continue setzt mit nächstem Schleifendurchlauf fort for (;;a++) { if (a > 10) break; } Datenbankanwendungsprogrammierung – p. 2
Kommentare mehrzeilig: /* und */, nicht schachtelbar einzeilig: //, schachtelbar Datenbankanwendungsprogrammierung – p. 2
Klassendefinition Attribute, Methoden + Zugriffsregeln public class Point { public int x,y.color; public void moveTo(int x, int y) { this.x = x; this.y = y; } } Datenbankanwendungsprogrammierung – p. 2
Instantiierung von Klassen Variablen nehmen Referenz auf Objekt auf bei Deklaration null Erzeugung durch new-Operator Point p; // Wert null p = new Point(); p.moveTo(1,2); Datenbankanwendungsprogrammierung – p. 2
Konstruktoren (1) implizit erzeugter parameterloser Standard-Konstruktor tragen Namen der Klasse, Überladen möglich Datenbankanwendungsprogrammierung – p. 2
Konstruktoren (2) public class Point { ... public Point(int x, int y) { this.x = x; this.y = y; color = 0; } public Point(int x, int y, int color) { this(x,y); this.color = color; } } Datenbankanwendungsprogrammierung – p. 2
Destruktoren kein delete-Operator, keine Destruktoren im C++-Sinn automatische Freispeicherverwaltung (Garbage Collection) finalizer-Methoden (protected void finalize()) Eigenschaften: Aufruf nicht garantiert, Exceptions ignoriert, keine Angaben über Zeitpunkt oder Reihenfolge des Aufrufs Datenbankanwendungsprogrammierung – p. 3
Einfachvererbung public class Square extends Point { public int length; public Square(int x, int y, int color, int super(x, y, color); this.length = length; } public void resize(int length) { this.length = length; } } Datenbankanwendungsprogrammierung – p. 3
Overriding von Methoden public class RoundSquare extends Square { public int radius; public RoundSquare(int x, int y, int color, super(x, y, color, length); this.radius = radius; } public void resize(int length) { radius = length/this.length; super.rezize(length); } } Datenbankanwendungsprogrammierung – p. 3
Zugriffsklassen: Daten, Methoden public Zugriff von beliebigen Klassen protectedZugriff aus jeder Klasse desselben Paketes oder aus Unterklassen anderer Pakete privateZugriff nur von Objekten der gleichen Klasse; keine Vererbung ohne Angabe Zugriff von allen Klassen desselben Pakets Datenbankanwendungsprogrammierung – p. 3
Zugriffsklassen: Klassen public Verwendung überall erlaubt ohne Angabe Verwendung nur im eigenen Paket Datenbankanwendungsprogrammierung – p. 3
Modifier für Daten/Methoden final Definition von Konstanten, Methode nicht überschreibbar; Methoden einer final-Klasse sind implizit final static Klassenvariablen, Klassenmethoden (static-Methoden sind implizit final) abstract Methoden ohne Implementierung; nur in abstrakten Klassen Datenbankanwendungsprogrammierung – p. 3
Parameterübergabe grundsätzlich call by value d.h. auch Objektreferenzen Modifier final möglich Datenbankanwendungsprogrammierung – p. 3
Interfaces reine Schnittstellen ohne Implementierung Interfaces können spezialisiert werden, auch Mehrfachvererbung Klasse kann mehrere Interfaces implementieren, erbt aber keine Implementierungen Interface-Variable kann Objekte der implementierenden Klasse(n) aufnehmen Datenbankanwendungsprogrammierung – p. 3
Pakete (1) bündeln logisch zusammengehörige Klassen/Interfaces bilden Hierarchie und jeweils einen Namensraum package mein.paket; public class ... Datenbankanwendungsprogrammierung – p. 3
Pakete (2) Importieren von Paketen erspart vollständige Qualifikation des Paketnamens import java.util.*; nun z.B. Vector statt java.util.Vector Datenbankanwendungsprogrammierung – p. 3
Exceptions Auslösen und Behandeln von Ausnahmen Exceptions: Objekte von Klassen, geerbt von Throwable werden lokal behandelt oder die Aufrufhierarchie hinauf propagiert Kombination möglich (Exception behandeln, neue auslösen) Datenbankanwendungsprogrammierung – p. 4
Lokale Behandlung try { // potentiell Exception-auslsender Code } catch (ExceptionTyp1 e1) { // Behandlung } catch (ExceptionTyp2 e2) { // Behandlung } optionaler finally-Block Datenbankanwendungsprogrammierung – p. 4
Propagieren von Exceptions Methodendeklaration: throws public void readFile(String name) throws IOEx // Code, der potentiell IOException auslst } Datenbankanwendungsprogrammierung – p. 4
Sie können auch lesen