CuP WS 2000/2001

Werbung
CuP - Java
Elfte Vorlesung
Montag, 11. November 2002
Frame
Object -- Component -- Container -- Window --Frame
import java.awt.Frame;
class TesteFrame{
public static void main(String[] args){
Frame rahmen = new Frame("Rahmentest“);
rahmen.setSize(400, 400);
rahmen.setVisible(true);
System.out.println(“Zum Schliessen x anklicken“);
}
11. November 2002
CuP WS 2002/2003
2
Erweiterung von Frame, Konstruktor, Farbe
Import java.awt.Color;
import java.awt.Frame;
class MeinRahmen extends Frame{
MeinRahmen(){
setBackground(Color.blue);
setSize(400, 400);
setVisible(true);
}
public static void main(String[] args){
MeinRahmen = new MeinRahmen();
}
}
11. November 2002
CuP WS 2002/2003
3
Color.black
(0,0,0)
Color.blue
(0,0, 255)
Color.cyan
(0,255,255)
Color.darkGray
(0,0, 255)
Color.gray
(128,128,128)
Color.green
(0,255,0)
Color.lightGray
(192,192,192)
Color.magenta(255,0,255)
Color.orange
(255,200,0)
Color.pink
(255,175,175)
Color.red
(255,0,0)
Color.white
(255,255,255)
Color.yellow
(255,255,0)
11. November 2002
CuP WS 2002/2003
Standardfarben
und RGB Code
4
RGB
Import java.awt.*;
class MeinRahmenRGB extends Frame{
MeinRahmenRGB(){
setBackground(new Color(1,1,55));
setSize(400, 400);
setVisible(true);
}
public static void main(String[] args){
MeinRahmenRGB = new MeinRahmenRGB();
}
}
11. November 2002
CuP WS 2002/2003
5
super
Import java.awt.*;
class MeinRahmenS extends Frame{
MeinRahmenS(String s){
super(s);
setBackground(Color.blue);
setSize(400, 400);
setVisible(true);
}
public static void main(String[] args){
MeinRahmenS = new MeinRahmenS("Zweiter Rahmen");
}
}
11. November 2002
CuP WS 2002/2003
6
Erläuterung zu „super“
Die Anweisung
super (s)
im Konstruktor MeinRahmen2(String s) ruft den
Konstruktor Frame(s) auf, also den Konstruktor der
Oberklasse (Superklasse).
MeinRahmen2 hat dann keinen Konstruktor ohne
Argumente mehr! Wenn wir so einen haben wollen,
müssen wir ihn selbs definieren.
11. November 2002
CuP WS 2002/2003
7
Super rgb
Import java.awt.*;
class MeinRahmenSrgb extends Frame{
MeinRahmenSrgb(String s, int i, int j, int k){
super(s);
setBackground(new Color(i,j,k));
setSize(400, 400);
setVisible(true);
}
11. November 2002
CuP WS 2002/2003
8
Super rgb - main
public static void main(String[] args){
MeinRahmenSrgb r1;
r1 = new MeinRahmenSrgb(“Teste Farben 1“, 1,55,255);
r1.setLocation(10, 20);
MeinRahmenSrgb r2;
r2 = new MeinRahmenSrgb(“Teste Farben 2“, 255,0,0);
r2.setLocation(100, 300);
}
}
11. November 2002
CuP WS 2002/2003
9
Graphics
Import java.awt.*;
class MeinRahmen3 extends Frame{
public void paint(Graphics g){
g.drawLine(50,50,100,100);
}
public static void main(String[] args){
MeinRahmen3 rahmen = new MeinRahmen3();
rahmen.setSize(300, 300);
rahmen.setVisible(true);
}
}
11. November 2002
CuP WS 2002/2003
10
Javaprogramme
Ein Javaprogramm besteht aus einer oder mehreren Klassen,
mindestens eines davon muss public sein und eine Methode
namens main enthalten, die folgende Form hat:
public static void main(String[] args){
Anweisungen
}
Kompiliert wird eine Klasse Xxxx durch den Befehl
javac Xxxx.java
und ausgeführt durch
java Xxxx
11. November 2002
CuP WS 2002/2003
11
Klassen
Klassen können haben:
Variable - primitive Datentypen oder Objekte anderer
Klassen, wir unterscheiden Klassen- und
Objektvarible
Konstruktoren
Methoden - wir unterscheiden auch hier Klassen und
Objektmethoden
11. November 2002
CuP WS 2002/2003
12
Klassenmodifikatoren
Klassen können sein:
public zugänglich von allen Klassen
abstrakt - von solchen Klassen können keine Instanzen
gebildet werden. Beispiel: die Klasse Math
final zu solchen Klassen können keine Erweiterungen
gebildet werden. Beispiel: die Klasse String
11. November 2002
CuP WS 2002/2003
13
Konstruktormodifikatoren
Konstruktoren können sein:
public zugänglich von allen Klassen
protected - Zugänglich nur von innerhalb der eigenen
Klasse und von Unterklassen
private - Zugänglich nur von innerhalb der eigenen Klasse
11. November 2002
CuP WS 2002/2003
14
Variablenmodifikatoren
Variablen können sein:
public zugänglich von allen Klassen
protected - Zugänglich nur von innerhalb der eigenen
Klasse und von Unterklassen
private - Zugänglich nur von innerhalb der eigenen Klasse
static Die Variable hat für alle Instanzen der Klasse
denselben Wert
final Die Variable muss initialisiert werden und kann
nicht verändert werden
transient - gehört nicht zum Stoff der Vorlesung
volatile gehört nicht zum Stoff der Vorlesung
11. November 2002
CuP WS 2002/2003
15
Lokalvariablenmodifikatoren
Lokalvariable können sein:
final -
11. November 2002
Die Variable muss initialisiert werden und kann
nicht verändert werden
CuP WS 2002/2003
16
Methodenmodifikatoren
Methoden können sein:
public zugänglich von allen Klassen
protected - Zugänglich nur von innerhalb der eigenen
Klasse und von Unterklassen
private - Zugänglich nur von innerhalb der eigenen Klasse
abstract - Die Methode hat einen leeren Rumpf
static Die Methode ist an die Klasse selbst gebunden,
nicht an Instanzen
final Keine Unterklassen können die Methode überlagern
native Der Rumpf ist aus einer anderen Programmiersprache
synchronized - gehört nicht zum Stoff der Vorlesung
11. November 2002
CuP WS 2002/2003
17
Fehlender Modifikator
Wird kein Modifikator festgelegt, so so ist die Einheit von jeder
Klasse desselben Pakets (für uns: für jede Klasse aus
demselben Verzeichnis) zugänglich.
11. November 2002
CuP WS 2002/2003
18
Bilden von Klassen
Komposition
class Kirche{
Turm turm;
Haus schiff;
}
11. November 2002
CuP WS 2002/2003
19
Bilden von Klassen
Vererbung
public class Hund extends Tier{
public void gibLaut(){
System.out.println ("Wau wau!");
}
}
public class Katze extends Tier{
public void gibLaut(){
System.out.println("Miau!");
}
}
11. November 2002
CuP WS 2002/2003
20
Herunterladen