Objektorientierte Programmierung in Java Inhalt Motivation

Werbung
Inhalt
Objektorientierte
Programmierung in Java
Mark Giereth
Teil 1.
Grundlagen der Objektorientierung
Teil 2.
Einführung in Java
Teil 3.
Beispiel: Entwicklung eines kleinen
Web-Browsers und Eclipse-Demo
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
2
Motivation
• Datenorientierte Sichtweise:
• Gruppierung von Daten zu komplexen Typen
• Definition von Operationen, die Daten verarbeiten
• Daten vor inkonsistenten Veränderungen schützen, indem Zugriff
auf die Daten Beschränkt wird
Teil 1:
Grundlagen der Objektorientierung
• Wiederverwendung von Code
• Einfachere Anpassbarkeit von Code
• Bessere Wartbarkeit
• Die Wartung von Softwaresystemen nimmt den größten Teil des
Lebenszyklus ein und ist daher besonders kostenintensiv
• Objektorientierte Systeme ermöglichen einen strukturierteren
Systementwurf
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
3
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
4
Objekte
Klassen und Instanzen
• (Software-)Objekte besitzen einen internen Zustand und
haben ein festgelegtes Verhalten
• Ein Objekt
• verwaltet seinen Zustand durch Variablen, Attribute genannt
• implementiert sein Verhalten durch Funktionen, Methoden
genannt
Attribute
(Zustand)
Methoden
(Verhalten)
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
5
• Klassen sind Vorlagen für die Erzeugung von Objekten
• Jedes Objekt gehört einer Klasse an
• Die Attribute und Methoden der Objekte werden in der
zugehörigen Klasse definiert
• Die Klasse legt den Typ eines Objekts fest
• Alle Objekte einer Klasse besitzen dasselbe Verhalten, da sie
dieselbe Implementierung der Methoden besitzen
• Objekte einer Klasse werden auch als Instanzen (instance) oder
Exemplare bezeichnet
• Klassen können auch Methoden und Attribute besitzen, die für
die Klasse selbst und nicht für jede Instanz gelten. Diese werden
als Klassen-Methoden/-Attribute bezeichnet (im Gegensatz zu
Instanz-Methoden/-Attribute)
Objektorientierte Programmierung in Java, Mark Giereth
Instantiierung
29.01.2004
6
Beispiel
Position y
• Die Erzeugung von Objekten wird Instantiierung
(instantiation) genannt
setze y
• Es wird Speicherplatz für das Objekt auf dem Heap allokiert
(abhängig von den Datentypen der Attribute)
• Bei der Instantiierung wird ein Konstruktor (spezielle Methode)
ausgeführt, der die Initialisierung des Objekts vornimmt
• Es werden den Attributen Werte zugeordnet, wodurch der
Zustand des Objekts definiert wird
Klasse
Position x
lese y
lese x
zeichne
Figur
setze x
berechne
Fläche
Geometrische Figur
Position y = -11
Position y = 10
Position x = 30
Position x = 20
• entweder definiert durch den Konstruktor
• oder Default-Werte (0 für Zahlen, null für Referenzen, etc.)
Instanz 1
• Die Instantiierung eines Objekts erfolgt mit dem new-Operator
Instanz 2
Figur 1
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
7
Objektorientierte Programmierung in Java, Mark Giereth
Figur 2
29.01.2004
8
UML Notation
Vererbung
Position y
• Die Unified Modeling
Language (UML) ist eine
Notation zur Spezifikation
und Visualisierung von
Modellen für
Softwaresysteme
• In den folgenden Folien
werden Klassendiagramme
zur Beschreibung von
Klassen und deren
Beziehungen untereinander
verwendet
setze y
• Vererbung (inheritance) ist ein Konzept, wodurch
Attribute und Methoden der Oberklasse auch den
Unterklassen zugänglich gemacht werden
• Vererbungsbeziehungen zwischen Klassen stellen
Generalisierungs- bzw. Spezialisierungsbeziehungen dar
Position x
lese y
lese x
zeichne
Figur
setze x
berechne
Fläche
Geometrische Figur
GeomFigure
x:int
y:int
Klassenname
Attribute
GeomFigure()
setX(x:int):int
setY(y:int):int
getX():int
getY():int
getArea():float
drawFigure():void
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
Oberklasse/
Superklasse
Methoden
und
Konstruktoren
9
Vererbung
GeomFigure()
setX(x:int):int
setY(y:int):int
getX():int
getY():int
getArea():float
drawFigure():void
Rectangle()
setWidth(x:int):int
setHeight(y:int):int
getWidth():int
getHeight():int
Circle
radius:int
Circle()
setRadius(x:int):int
getRadius():int
Objektorientierte Programmierung in Java, Mark Giereth
Circle
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
10
• Hat eine Methode einer Subklasse die gleiche Signatur
einer Methode der Superklasse, so wird die
Superklassenmethode überschrieben (overriding)
• Gibt es mehrere Methoden mit demselben Namen aber
mit unterschiedlichen Signaturen, so spricht man von
Überladen (overloading) Aber: Methoden müssen
denselben Rückgabewert haben!
• Ein Objekt einer Unterklasse (z.B. Rechteck, Kreis) kann
auch einer Variablen vom Typ der Oberklasse (z.B.
GeomFirgure) zugewiesen werden (upcasting)
width:int
height:int
GeomFigure
Rectangle
Vererbung
Rectangle
x:int
y:int
Unterklassen/
Subklassen
GeomFigure
Vererbungsbeziehung als
nichtausgefüllter Pfeil von der
Unter- zur Oberklasse
29.01.2004
11
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
12
Abstrakte Klassen und
Interfaces
Abstrakte Klassen
• Abstrakte Klassen sind Klassen, die mindestens eine
abstrakte Methode haben
• Abstrakte Methoden besitzen keine Implementierung.
• Von abstrakten Klassen können keine Instanzen
erzeugt werden
• Unterklassen müssen entweder die abstrakten Methoden
implementieren oder sind ebenfalls abstrakt
• Interfaces sind abstrakte Klassen, die nur aus
abstrakten Methoden bestehen. Sie repräsentieren eine
definierte Schnittstelle als eine Menge von welche die
jeweilige Klasse implementieren muss Methoden.
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
13
Rectangle
GeomFigure
{abstract}
width:int
height:int
x:int
y:int
GeomFigure()
setX(x:int):int
setY(y:int):int
getX():int
getY():int
getArea():float {abstract}
drawFigure():void {abstract}
Da für getArea() und drawFigure() keine
sinnvolle Implementierung möglich ist,
werden diese Methoden als abstract
gekennzeichnet und müssen von allen
nicht abstrakten Unterklassen
implementiert werden.
Objektorientierte Programmierung in Java, Mark Giereth
Rectangle()
setWidth(x:int):int
setHeight(y:int):int
getWidth():int
getHeight():int
getArea():float
drawFigure():void
Circle
radius:int
Circle()
setRadius(x:int):int
getRadius():int
getArea():float
drawFigure():void
29.01.2004
14
Zusammenfassung
• Objekte
• besitzen Attribute und Methoden
• gehören einer Klasse an
Teil 2:
Einführung in Java
• Klassen
• legen Methoden und Attribute der Objekte fest
• können Klassen-Methoden/-Attribute besitzen
• können abstrakt sein
• Instantiierung
• Objekte werden auf dem Heap erzeugt
• den Attributen werden Werte zugeordnet
• Konstruktoren werden ausgeführt
• Vererbung
• Attribute und Methoden der Oberklasse werden den Unterklassen
zugänglich gemacht
• Interfaces
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
15
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
16
Eigenschaften von Java (1)
Eigenschaften von Java (2)
• Java ist plattformunabhängig
• Java-Code wird mit einem Java-Compiler (javac) in
plattformunabhängigen Bytecode überführt
• Bytecode wird von einer Java Virtual Machine (JVM) teils
interpretiert teils zur Laufzeit in Maschinencode kompiliert (JustIn-Time-Compiler in JVM integriert)
• → Für jede unterstützte Plattform muss es eine JVM geben
Source
Compiler
JVM Solaris
JVM Linux
Objektorientierte Programmierung in Java, Mark Giereth
...
29.01.2004
17
Java API
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
18
• Java Applications
• Laufen in einer JVM, die von Betriebssystemebene
aus gestartet wird
• Zugriff auf alle lokalen Ressourcen
Datenbankunterstützung (java.sql)
Netzwerkunterstützung (java.net)
Unterstützung für verteilte Systeme (java.rmi)
2D Graphik (java.awt)
Collektionframework (java.util)
XML Unterstützung (javax.xml)
Graphische Benutzeroberflächen (javax.swing)
• Java Applets
• Laufen in der JVM des Browsers (bzw. in dem JVM
Plug-in des Browsers)
• Werden in HTML-Seiten eingebunden
• Hohe Sicherheitsbeschränkungen (kein Zugriff auf
lokale Ressourcen wie Filesystem, Drucker, etc.)
• Java Servlets
• Java Klassen sind in Packages organisiert
• Laufen in einer JVM eines Webservers
• Dynamisches erzeugen von Web-Seiten
• Ein Package gibt den Namensraum einer Klasse an z.B.
java.lang.String
Objektorientierte Programmierung in Java, Mark Giereth
keine Pointer
keine Destruktoren sondern automatische Garbage Collection
keine Mehrfachvererbung
kein Operator-Overloading
Arten von Java Programmen
• Es existiert eine rießige Anzahl von vordefinierten
Klassen, die mit der Java Umgebung ausgeliefert
werden, z.B.
•
•
•
•
•
•
•
•
•
•
•
• Bytecode Verification
• Security Manager und Security Policies erlauben
feinkörnige Rechtevergabe für Java-Programme
• Exception Handling
• Thread-Sicherheit in die Sprache integriert
Bytecode
JVM Windows
Java wurde auf Sicherheit und Robustheit hin entwickelt:
• Fehleranfällige Sprachkonstrukte fehlen:
29.01.2004
19
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
20
Beispiel für eine komplexe
Java Application
Hello World Application
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
• Speichern als Textdatei Hello.java
• Aufruf des Java-Compilers: javac Hello.java
→ erzeugt die Bytecode-Datei Hello.class
• Ausführen des Bytecodes: java Hello
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
21
Objektorientierte Programmierung in Java, Mark Giereth
Hello World Applet
import java.applet.Applet;
import java.awt.Graphics;
public class HelloApplet extends Applet {
public void paint(Graphics g) {
g.drawString("Hello World", 5, 20);
}
}
<html>
<head><title>HelloApplet Test</title></head>
<body>
Hier kommt das Applet:
<applet code="HelloApplet.class" codebase="."
width="500" height="100"></applet>
</body>
</html>
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
29.01.2004
22
Java Basics
.java
Datei
•
•
•
•
Klassen- und Interface-Definition
Datentypen
Variablen- und Methodendeklaration
Kontrollfluss
• Bedingungen (if-then, if-then-else, switch)
• Schleifen (while, do, for)
.html
Datei
23
• Exception Handling
• throws, throw, try-catch
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
24
Klassen und Interfaces
Datentypen
[public] [abstract] class Klassenname
[extends Klassenname] [implements Interfacenamen] {
...Klassen/Instanz Attribute...
...Konstruktoren...
...Klassen/Instanz Methoden...
}
[public] interface Interfacename
[extends Interfacename] {
...Klassen Attribute...
...Instanz Methoden...
}
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
25
Variablendeklaration
int x;
int[] vector = new int[3];
boolean b = true;
char c = 'A';
String text = "Hallo Welt";
≡ String text = new String("Hallo Welt");
• GeomFigure f = new GeomFigure();
Objektorientierte Programmierung in Java, Mark Giereth
Die String-Klasse bildet
eine Ausnahme: obwohl
String ein Referenttyp ist,
können String Instanzen
mit Variable="Text"
instanziiert werden.
29.01.2004
•
•
•
•
Ganze Zahlen: long(64 bit), int(32), short(16), byte(8)
Gleitkommazahlen: double (64 bit), float (32 bit)
boolean
char (16 bit Unicode character)
• Referenztypen
•
•
•
•
Classes (z.B. String), Arrays, Interfaces
Die Konstante null bezeichnet die leere Referenz
Referenztypen werden mit dem new-Operator erzeugt
Zuweisung eines Referenztyps kopiert den Verweis
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
26
Methoden
Typename Variablenname [Wertzuweisung] ;
•
•
•
•
•
• Elementare Typen
27
[private|public|protected] Typename Methodenname
(Argumentenliste) [throws Exception] {
...Methodenrumpf...
}
• void sayHello() throws NoVoiceEx {System.out.println("Hallo Welt"); }
• public String toString() {System.out.println("Hallo Welt"); }
• protected int setPosition(int x, int y) {m_x=x; m_y=y; }
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
28
Methodenaufruf
Zugriffsbeschränkungen
Objekt.Methode(Argumente);
Kennzeichnung
private
protected
public
keine Angabe
Objekt
...
String text = "Hallo Welt";
String hallo = text.substring(1,5);
System.out.println(hallo);
...
text.substring(1,5).indexOf("llo");
Objektorientierte Programmierung in Java, Mark Giereth
Methode
Argumente
29.01.2004
Klassen
nur die Klasse selbst
auch alle Unterklassen
alle Klassen
alle Klassen des Packages
(package private)
• keine "friend" Deklarationen wie in C++
• Anwendung: Methoden, Attribute, Klassen
29
Objektorientierte Programmierung in Java, Mark Giereth
Bedingungen
if (Ausdruck) {
... then-Block...
} else {
... else-Block...
}
Beispiel:
if (x<0) {
y = -x;
} else {
y = x;
}
Beispiel:
switch(x){
case 1: System.out.println("eins");
break;
case 2: System.out.println("zwei");
break;
default: System.out.println("?");
}
29.01.2004
29.01.2004
30
Schleifen
switch (Int-Ausdruck) {
case wert1: block1; break;
case wert2: block2; break;
default: default-block
}
Objektorientierte Programmierung in Java, Mark Giereth
UML
#
+
31
while (Ausdruck) {
... Schleifenrumpf...
}
for (Init, Ausdruck, Schritt) {
... Schleifenrumpf...
}
Beispiel:
int x=10;
while(x>0) {
System.out.println(x);
x=x-1;
}
Beispiel:
for(int x=10; x>10; x=x-1) {
System.out.println(x);
}
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
32
Exception Handling
Die Klasse GeomFigure
...
public static String readFile(String filename) throws IOException {... }
...
public static void main(String[] args) {
String content = "";
if (args != null && args.length > 0) {
try {
content = readFile(args[0]);
System.out.println(content);
} catch (IOException e) {System.err.println("Fehler: "+e);}
}
}
public class GeomFigure {
GeomFigure
// Attribute: x-/y-Koordinate
#myX:int
protected int myX, myY;
#myY:int
public GeomFigure() {} // Konstruktor
+GeomFigure()
// Methoden:
+setX(x:int)
+setY(y:int)
public int getX() {return myX; }
+getX():int
public int getY() {return myY; }
+getY():int
public void setX(int x) {myX=x; }
+toString():String
public void setY(int y) {myY=y; }
public String toString() {
return new String("["+myX+","+myY+"]");
}
}
Objektorientierte Programmierung in Java, Mark Giereth
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
33
Die Klasse GeomApp
• Spezielle Methoden zur Initialisierung, die
bei der Instanziierung aufgerufen werden
• Konstruktoren haben denselben Namen
wie die Klasse und keinen Rückgabewert
• Konstruktoren können Parameter haben
• Jede Klasse hat einen impliziten DefaultKonstrutor, der keine Parameter hat
• Jeder Konstruktor ruft implizit den
Konstruktor der Superklasse auf: super()
Ausnahme: hat die Superklasse keinen
öffentlichen Konstruktor
• Durch explizite Angabe kann ein
entsprechender Konstruktor der
Superklasse ausgewählt werden
Ausgabe:
[10,20]
29.01.2004
34
Konstruktoren
public class GeomApp {
public static void main(String[] args) {
GeomFigure f = new GeomFigure();
f.setX(10);
f.setY(20);
System.out.println(f.toString());
}
}
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
35
Objektorientierte Programmierung in Java, Mark Giereth
GeomFigure
#myX:int
#myY:int
+GeomFigure()
+GeomFigure(x:int,y:int)
+GeomFigure(p:GeomFigure)
+setX(x:int):int
+setY(y:int):int
+getX():int
+getY():int
+toString():String
29.01.2004
36
Die Klasse GeomFigure
Die Klasse GeomFigure
public class GeomFigure {
// Attribute: x-/y-Koordinate
protected int myX, myY;
...
GeomFigure f1 = new GeomFigure(10,20);
GeomFigure f2 = new GeomFigure(f1);
System.out.println("f1:"+f1.toString()+", f2:"+f2.toString());
...
// Konstruktoren:
public GeomFigure() {}
public GeomFigure(int x, int y) {myX=x; myY=y; }
public GeomFigure(GeomFigure f) {myX=f.myX; myY=f.myY; }
Ausgabe:
f1:[10,20], f2:[10,20]
// Methoden ...
}
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
37
Die Klasse Square
+GeomFigure()
+GeomFigure(x:int,y:int)
+GeomFigure(p:GeomFigure)
+setX(x:int):int
+setY(y:int):int
+getX():int
+getY():int
+toString():String
Square
+Square(a:int)
+Square(p:GeomFigure,a:int)
+setLength(a:int):void
+getLenght():int
+getArea():float
+toString():String
29.01.2004
38
public class Square extends GeomFigure {
Ist a Attribut
// Attribute
oder Argument?
private int a;
this.a
// Konstruktoren
public Square (GeomFigure f, int a) {super(f); this.a=a; }
public Square (int a) {super(); this.a=a; }
// neue Methoden
public int getLength() {return a; }
this gibt die
Referenz auf
public void setLength(int a) {this.a=a; }
dieses Objekt an,
public float getArea() {return a*a; }
super auf die
// überschriebene Methoden
Implemtierung der
Superklasse
public String toString() {
return "[x/y:"+super.toString()+"a:"+a+"]"; }
}
-a:int
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
Die Klasse Square
GeomFigure
#x:int
#y:int
Objektorientierte Programmierung in Java, Mark Giereth
39
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
40
Die Klasse GeomApp
Überschreiben von Methoden
public class GeomApp {
public static void main(String[] args) {
GeomFigure f = new GeomFigure (10,20);
GeomFigure f2 = new Square(f,5); // Square ist ein
GeomFigure
// getArea() nicht definiert für GeomFigure ->
Downcasting
// sicheres Downcasting mit: if(f2 instanceof Square)...
float a= ((Square)f2).getArea();
System.out.println(f2.toString() + " area: "+a);
}
}
Objektorientierte
Programmierung in Java, Mark Giereth
29.01.2004
41
Ausgabe:
• Hat eine Methode einer Subklasse die gleiche Signatur einer
Methode der Superklasse, so wird die Superklassenmethode
überschrieben (overriding)
• GeomFigure definiert eine Methode toString():
• String toString() {return new String("["+x+","+y+"]");
• Square überschreibt die Methode:
• String toString() {return "[x/y:"+super.toString()+"a:"+a+"]"); }
• Auswirkung:
• GeomFigure f2 = new Square(new GeomFigure(10,20),5);
System.out.println(f2.toString()); // Ergebnis [x/y:[10,20], a:5]
• Obwohl die Variable f2 vom Typ GeomFigure ist, referenziert sie
ein Objekt vom Typ Square, dessen toString() Methode
ausgeführt wird
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
42
Überladen von Methoden
static String read(String filename) {...}
static String read(String filename, String path) {...}
static String read(File file) {...}
• Gibt es mehrere Methoden mit demselben Namen aber
mit unterschiedlichen Signaturen, so spricht man von
Überladen (overloading)
String f = "Hallo.java";
String content = read(f);
Teil 3:
Entwicklung eines kleinen Web-Browsers
Eclipse Demo
ruft erste Variante auf, da
f vom Typ String ist.
Eclipse im Web:
http://www.eclipse.org
• Beispiel: System.out.println(...)
• (siehe APIDokumentation)
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
43
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
44
Ausschnitt aus Swing/AWTKlassenhierarchie
Swing GUI Komponenten
• Toplevel Container:
• JDialog, JFrame, ...
• General Purpose Container:
• JSplittPane, JTabbedPane, JScrollPane, ...
• Basic Controls:
• JButton, JMenu,
JTextField, JSlider,...
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
45
Container
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
46
Beispiel: Web Browser
• Können andere Komponenten enthalten
• Beispiel: Toplevel-Container JFrame
JFrame
JTextField
JEditorPane
JButton
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
47
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
48
Schritt 1
Schritt 2
public static void main(String[] args) {
// erzeuge Anwendungsfenster:
JFrame frame = new JFrame("MiniBrowser");
// erzeuge GUI Komponenten:
JTextField field = new JTextField();
JEditorPane editor = new JEditorPane();
JButton button = new JButton("refresh");
// definiere Layout und füge Komponenten hinzu:
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(field, BorderLayout.NORTH);
frame.getContentPane().add(editor, BorderLayout.CENTER);
frame.getContentPane().add(button, BorderLayout.SOUTH);
// setze Größe und zeige Frame an:
frame.setSize(400,200);
frame.setVisible(true);
}
29.01.2004
49
Objektorientierte Programmierung in Java, Mark Giereth
Schritt 3
29.01.2004
50
Links und Literatur
public class WebBrowser extends JFrame implements ActionListener {
...
public void actionPerformed(ActionEvent e) {
System.out.println("URL: "+field.getText());
try {
editor.setPage(field.getText());
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
• Java Hauptseite:
• http://java.sun.com
• Java Tutorials:
• http://java.sun.com/developer/onlineTraining/
• David Flanagan: "Java in a Nutshell",
O'Reilly, 11/2002, 1104 Seiten,
• Alexander Niemann:"Objektorientierte
Programmierung in Java. Das
Einsteigerseminar", vmi Buch, 12/2002,
400 Seiten,
Bücher
Objektorientierte Programmierung in Java, Mark Giereth
public class WebBrowser extends JFrame {
private JTextField field = new JTextField();
private JEditorPane editor = new JEditorPane();
private JButton button = new JButton("refresh");
public static void main(String[] args) {
public WebBrowser() {
JFrame frame = new WebBrowser();
super();
frame.setSize(400, 200);
setTitle("Mini Browser");
frame.setVisible(true);
button.addActionListener(this);
}
editor.setEditable(false);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(field, BorderLayout.NORTH);
getContentPane().add(editor, BorderLayout.CENTER);
getContentPane().add(button, BorderLayout.SOUTH);
}
}
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
51
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
52
Kompaktkurs Java
• In der vorlesungsfreien Zeit nach dem Sommersemester
• 7 Tage Java in kompakter Form, kombiniert mit Übungen
• Inhalt:
• Tag 1+2: Die Programmiersprache Java
• Tag 3: Objektorientierte Analyse und Design, UML,
Entwurfsmuster
• Tag 4: GUI Entwicklung: Swing, AWT, Java2D
• Tag 5: Datenbankanbindung mit JDBC, Einführung in SQL
• Tag 6: Java Servlets und Java Server Pages
• Tag 7: Java APIs für XML
• Im Anschluss: 7 Tage XML Kompaktkurs
Objektorientierte Programmierung in Java, Mark Giereth
29.01.2004
53
Herunterladen