PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java - Programmierung


Gast
2003-07-12, 12:17:00
Hallo,


hab da mal ein paar Fragen :



a)
Ich soll eine Klasse der geometrischen Form "Kreis" entwerfen.
Die Klasse soll als Attribut den Radius (typ:double) zur Berechnung von Fläche und umfang enthalten.

Der Mittelpunkt soll mit den Koordinaten (int x, int y) ebenfalls gespeichert werden.

Jetzt soll ich dafür Methoden zur Berechnung von Fläche und umfang definieren.

b)

Dann soll ich folgende Konstruktoren programmieren :
Einen "copy" - Konstruktor und einen Konstruktor, der die Parameter Radius, x- und y-Koordinate übergibt.

c)

Da soll ich dann die Daten kapseln und ein Attribut einführen, das die Anzahl der erzeugten Objekte zählt.

d)

Dann soll ich ein Testprogramm für diese Klasse programmieren.
Dort sollen dann 2 Instanzen der Klasse "Kreis" erzeugt werden, wobei jeweils ein anderer Konstruktor zu nutzen ist.


Kann mir da jemand einwenig helfen ? Wie soll ich anfangen ?


Danke.

HellHorse
2003-07-12, 14:39:15
Quick and Dirty

public class Kreis {

private static int instanceCount = 0;

private double radius;

private int x;

private int y;

public Kreis(double radius, int x, int y) {
this.radius = radius;
this.x = x;
this.y = y;
Kreis.instanceCount++;
}

public Kreis(Kreis kreis) {
this(kreis.getRadius(), kreis.getX(), kreis.getY());
}

public double getRadius() {
return this.radius;
}

public int getX() {
return this.x;
}

public int getY() {
return this.y;
}

public double getArea() {
return Math.pow(this.radius, 2) * Math.PI;
}

public double getPerimeter() {
return 2 * this.radius * Math.PI;
}
}


Vielliecht machst du noch ein getter für instanceCount und ev setter für die Attribute.

Das Testprogramm sollte kein Problem sein.

Evil Ash
2003-07-13, 20:08:28
Sähe das Testprogramm in diesem Fall dann ungefähr so aus ?


public class kreis_test{
public static void main (String []args){

int i = KeyBoard.readInteger ("Geben Sie den Radius ein :");

system.out.println(getArea(i));
system.out.println(getPerimeter(i));
}
}

bulla
2003-07-13, 22:45:46
nein, eher so:


public class kreis_test{
public static void main (String []args){
int i = KeyBoard.readInteger ("Geben Sie den Radius ein :");
//koordinaten
int x = 100, y = 200;
Kreis rund = new Kreis( (double)i, x, y );
System.out.println( rund.getArea() );
System.out.println( rund.getPerimeter() );

Kreis rund2 = new Kreis( rund ); //erstellt eine Kopie des Kreises

}
}