:OOP: Klassen und Objekte
Erzeugen Sie ein BlueJ Projekt "spider_v1" mit folgenden Klassen:
import java.awt.*;
import java.awt.event.*;
/**
* Title: spider - SpiderStart
* Description: Projekt zur Einfuehrung der Objektorientierten Programmierung
* Copyright: Copyright (c) 2003
* Company: MezData
* @author Oliver Mezger
* @version 1.0
*/
public class SpiderStart {
/**Konstruktor fuer die Applikation*/
public SpiderStart() {
//die SpiderBox wird erzeugt
SpiderBox sbox = new SpiderBox();
//die Groesse der Box wird festgelegt
sbox.setSize(500,350);
sbox.setTitle("SpiderBox");
sbox.setVisible(true);
}
/**Main Methode zum starten der Applikation*/
public static void main(String[] args) {
new SpiderStart();
}
}
import java.awt.*;
import java.awt.event.*;
/**
* Title: spider - SpiderBox
* Description: Projekt zur Einfuehrung der Objektorientierten Programmierung
* Copyright: Copyright (c) 2003
* Company: MezData
* @author Oliver Mezger
* @version 1.0
*/
public class SpiderBox extends Frame {
// Die Attribute der Klasse
private Color boxFarbe;
private Button exit = new Button();
private FlowLayout myFlowLayout = new FlowLayout();
// Die Methoden der Klasse
//Konstruktor, wird beim Erzeugen der Klasse aufgerufen
public SpiderBox() {
boxFarbe=Color.yellow;
this.setLayout(myFlowLayout);
setBackground(boxFarbe);
//Button zum Verlassen des Programms
exit.setLabel("EXIT");
//Wird der Button gedrueckt, wird exit_mouseClicked(e) aufgerufen.
//Diese Methode wird dem Betriebssystem bekannt gemacht, so dass es bei
//einem Mausklick auf den Button die angegebene Methode aufruft.
exit.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
exit_mouseClicked(e);
}
});
this.add(exit, null);
}//Ende des Konstruktors
//Diese Methode wird vom Betriebssystem aufgerufen, wenn das Fenster
//neu gezeichnet werden muss, z.B. wenn ein anderes Fenster, welches
//dieses Fenster verdeckt hatte, weggeschoben wird.
public void paint(Graphics g) {
int ortX = 100, ortY = 100, groesse = 50;
g.setColor(Color.red);
g.fillOval(ortX-groesse/2, ortY-groesse/2, groesse, groesse);
//die Nase
g.setColor(Color.black);
int part=groesse/8;
g.drawLine(ortX, ortY-part, ortX, ortY+2*part);
//der Mund
part=2*groesse/3;
g.drawArc(ortX-part/2, ortY-part/2, part, part, -125, 80);
//die Augen
g.setColor(Color.green);
part=groesse/8;
g.fillOval((int)(ortX-3*part), ortY-2*part, 2*part,part);
g.fillOval((int)(ortX+1*part), ortY-2*part, 2*part,part);
}
//Die Methode wird aufgerufen, wenn der exit-Button gedrueckt wurde.
//Die Verbindung des Mausklicks mit der Methode, wurde im Konstruktor
//hergestellt (siehe dort).
public void exit_mouseClicked(MouseEvent e) {
System.exit(0);
}
}
Compilieren und testen Sie das Programm!
Lesen Sie folgende Seite: http://ivs.cs.uni-magdeburg.de/%7edumke/UML/2.htm
Gruppenarbeit: Erstellen Sie für die Klasse "SpiderBox" ein Klassendiagramm und ein Objektdiagramm!
Wodurch wird die Spinne gezeichnet? Wozu wird die Klasse "SpiderStart" benötigt?
Erweiteren Sie SpiderBox so, daß die Spinnen Beine bekommen!
Es sollen nun mehrere Spinnen in der Box sein, erweitern Sie das Klassendiagramm um eine Klasse "Spider", welche Eigenschaften und Methoden werden in dieser Klasse benötigt? Welche Änderungen ergeben sich für die Klasse "SpiderBox" ?
Implementieren Sie die Klasse "Spider" und testen Sie Ihr Programm!