Konrad-Adenauer-Gymnasium Langenfeld

Informatik Grundkurs Q1

JumpingBall objektorientiert

Die bisherige Art zu programmieren, hat zwar Objekte von Java genutzt, war aber nicht im klassischen Sinne objektorientiert.

Daher soll jetzt das JumpingBall2 so umgebaut werden, dass daraus eine objektorientierte Variante wird.

Dazu wird zunächst einmal in der Applet-Klasse im wesentlichen der Inhalt der paint()-Methode entfernt.

In die paint()-Methode kommt jetzt nur noch der Aufruf der Zeichenmethode eines Ball-Objects:

public void paint(Graphics g)
{
  myBall.zeichne(g);
}

Außerdem ist das Objekt myBall zu erzeugen:

Ball myBall = new Ball();

Zusätzlich benötigen wir eine Klasse Ball, die nun die Definition von Ballobjekten enthält. Neben dem Standard-Konstruktor Ball() soll dort auch noch ein überladener Konstruktor 
Ball (x,y,radius,farbe) definiert werden, mit dem ein Ball auch mit anderen Startparametern erzeugt werden kann.

Die Methode zeichne() erhält im wesentlichen den Programmtext aus der paint()-Methode.

import java.awt.*;
public class Ball
{
  private int x,y;
  private int radius;
  private Color farbe;
  private double SinX=0.0, SinY=0.0;
  private double SinOffX=2*Math.PI / 180, SinOffY = 5*Math.PI / 180
  
  public Ball()
  {
    this.x=200;
    this.y=120;
    this.radius=10;
    this.farbe=Color.blue;
  }

  public Ball(int x, int y, int radius, Color farbe)
  {
    this.x=x;
    this.y=y;
    this.radius=radius;
    this.farbe=farbe;
  }

  public void zeichne(Graphics g)
  {
    x = 200 + (int)(180*Math.sin(SinX));
    SinX+=SinOffX;
    y = 120 - (int)(Math.abs(120*Math.sin(SinY)));
    SinY+=SinOffY;
    g.setColor(farbe);
    g.fillOval(x,y,2*radius,2*radius);
  }
}

Mit private werden hierbei zwei Sorten von lokalen Varibalen des Objekts angegeben. Einerseits die vier Eigenschaften der Klasse Ball x, y, radius und farbe, andererseits die Hilfsvariablen SinX, SinY, SinOffX und SinOffY. Die Schutzklasse private sorgt dafür, dass auf diese Werte nur innerhalb der Klasse über Methoden zugegriffen werden kann.

Kein Java-Browser


© Ralph-Erich Hildebrandt, 30. Juni 2004