Kreis,Punkt,Zylinder

bluebaby

Aktives Mitglied
Hallo,
Ich komme bei einer meiner Aufgabe nicht weiter. Und zwar weiß ich nicht wie ich diese toString() Methoden schreiben soll bzw. was die machen sollen. Ich bitte euch kurz das Programm durchzufliegen ob das überhaupt passt was ich da geschrieben habe.

Die Aufgabenstellung lautet:


Erstelle eine Klasse Punkt mit den privaten double-Attributen x und y, die die Koordinaten eines Punktes im 2-dimensionalen Raum darstellen.

Die Klasse besitzt 2 Konstruktoren:

ohne Parameter, x und y werden auf 0 gesetzt
mit 2 Parametern, die die Initialwerte für x und y darstellen
Weiters besitzt die Klasse folgende Methoden
setPunkt(), die die Attribute x und y können neu gesetzt werden.
getX() liefert den x-Wert
getY() liefert den y-Wert
toString() liefert z.B. [ 3.0, 4.0]

Erstelle eine Klasse Kreis, die von der Klasse Punkt abgeleitet ist und ein privates Attribut radius hat.

Die Klasse Kreis hat folgende Konstruktoren:
Kreis() ohne Parameter setzt den radius auf 0.0
Kreis (double radius) initialisiert den radius mit dem entsprechenden Wert
Kreis (double x, double y, double radius) initialisiert x und y der Klasse Punkt und radius der Klasse Kreis

Die Klasse besitzt folgende weitere Methoden:
serRadius(double r): setzt den radius auf r, falls r >=0 ist, andernfalls wird der Radius auf 0 gesetzt.
getRadius(): gibtr den radius zurück
flaeche(): gibt die Fläche zurück
toString(): gibe eine Zeichenkette zurück, die die ein Objekt der Klasse repräsentiert.

Erstelle eine Klasse Zylinder, die von der Klasse Kreis abgeleitet ist und ein privates double-Attribut hoehe hat.

Die Klasse Zylinder besitzt folgende Konstruktoren:
Zylinder() ohne Parameter, setzt die hoehe auf 0.0
Zylinder (double h, double r, double x, double y): setzt die entsprechenden Attribute
Die Klasse besitzt folgende weitere Methoden:
setHoehe(double h)
getHoehe()
flaeche()
volumen()
toString()


Hier,dass was ich programmiert habe:

Die Klasse Punkt:

Java:
 public class Punkt
{
   private double x;
   private double y;
   
    public Punkt(){        
        x=0.0;
        y=0.0;
    }
    
    public Punkt(double x, double y){ 
       this.x=x;
       this.y=y;
    }
    
    public void setPunkt(double x, double y){
        this.x=x;
        this.y=y;
    }
    
    public double getX(){        
       return x;
    }
    
    public double getY(){        
       return y;
    }
    
 }


Die Klasse Kreis:

Java:
public class Kreis extends Punkt
{
   private double radius;
   
   public Kreis(){
      radius=0.0; 
    }
   
   public Kreis(double radius){
      this.radius=radius;
      radius=40.0;
    }
   
   public Kreis (double x, double y, double radius){
      super(x,y);
      this.radius=radius;
    }
   
   public void setRadius(double r){
       if(r >= 0.0){           
          r=radius;
          }else{              
             radius=0.0;
       }
     }
   
   public double getRadius(){
       return radius;
    }
   
   public double flaeche(){
    return (radius*radius)*Math.PI;
    }
   

   
}

Die Klasse Zylinder:

Java:
public class Zylinder extends Kreis
{
    private double hoehe;
    
    public Zylinder(){
        hoehe=0.0;
    }
    
    public Zylinder(double h, double r, double x, double y){
       super(x,y,r);
       hoehe=h;
    }
    
    public void setHoehe(double h){
        h=hoehe;}
    
    public double getHoehe(){
        return hoehe;
    }
    
    public double flaeche(){
        double mantel;
        mantel=2*(Math.PI)*getRadius()*hoehe;
        double grund;
        grund=Math.PI*(getRadius()*getRadius());
        return 2*grund+mantel;
    }
    
    public double volumen(){
       return Math.PI*(getRadius()*getRadius())*hoehe;
    }
    
    
    }

Vielen Dank im Voraus
 
Die toString() Methode gibt eine String Represenation deiner Klasse zurück.

Diese ist bereits in Object implementiert und liefert sowas: Punkt@3ihohefhff

Wenn du eine Methode public String toString() implementierst, dann überschreibst du diese und im Falle des Punkts würde das so aussehen:
[XML]
public String toString () {
return "P[x,y]";
}

[/XML]

Mehr dazu bei google.de
 
Ist ja genau das gleiche, was ich geschrieben habe.

du musst aber natürlich x und y austauschen durch variablen.. Sonst hast du einen Konstanten string.
 
Also das mit dem x und y tauschen durch eine Variable kapier ich jetzt nicht. Ist das Programm wenigstens so gelöst wie in der Aufgabe verlangt?.
 
Habe mir das nicht komplett durchgelsen.

Du musst sowas schreiben
Code:
return "P[" + this.getX() + "," ....

Sonst gibt toString immer das gleiche aus
 

Zurück
Oben