Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Ignorieren von Objektvariable

  1. #1
    sterndu1
    Gast

    Ignorieren von Objektvariable

    Ich habe hier ein kleines Problem,bei dem ich nicht weiter komme. Ich habe eine Basisklasse Punkt von der die Klasse Kreis erben soll. Nur bekomme ich bei der Augabe nur 0-Werte.Die übergebenen werden also im Konstruktor ignoriert.Was habe ich falschgemacht?

    Code:
    /**
     *Punkt.java
     *Klasse, von der andere Klassen erben
     */
     class Punkt {
      protected double x,y;
    
      public Punkt(double x, double y){
        this.x = x;
        this.y = y;
      } // public Punkt(double x, double y)
    
    /**
      * @return x,y Koordinaten eines Punktes werden zurueckgegeben.
      */
       public String text(){
         return new String("("+x+", "+y+")");
       } // public String text()
    
    /** Gibt die Koordinaten des Punktes (x,y) aus.
      * Ruft dazu die Methode text().
      * @return Formatierte Ausgabe der Punktkoordinaten.
      * @see Punkt#text()
      */
    
      public String toString(){
        return new String("Punkt: "+text());
      }// public String toString()
    
    } // public class Punkt
    
    //Klasse Kreis erweitert von der Klasse Punkt
    class Kreis extends Punkt
    {
     private double radius;  //Variable für Radius
     double kreisUmfang;  // Variable für Umfang
     double kreisFlaeche; // Variable für Kreisfläche
    
    
    
    
    
    //Konstruktor der Klasse Kreis
    
    
    Kreis(double x, double y, double radius){
     super(x,y);
     this.radius =0.0;
    
    
    }
    
    
    
    
    //Umfang berechnen
    public double kreisUmfang(){
    	return 2* Math.PI*radius;
    	}
    public double kreisFlaeche()
    {
    return Math.PI * (radius * radius);
    }
    
    
    } // Ende Klasse Kreis
    
    // Klasse Test(Hauptklasse)
    public class Test{
    
    
    //Aufruf der Main-Methode
    public static void main(String[]args){
    
    
    Kreis    kreis1    = new Kreis(20,20,12);
    
    
     // Ausgabe des Umfang und des Flächeninhaltes des Kreises
      System.out.println(" Der Umfand des Kreises betraegt:   " + kreis1.kreisUmfang() + "   und  der Flaecheninhalt des Kreises betraegt :    " +
      					 + kreis1.kreisFlaeche());
    
    
    
    
    
    
    		} // Ende Main Methode
    }  //Ende der Hauptklasse Test
    Danke für Eure Hilfe !!!

  2. #2
    Registrierter Benutzer Avatar von BLUESCREEN3D
    Registriert seit
    08.11.2002
    Beiträge
    665
    Zitat Zitat von sterndu1 Beitrag anzeigen
    Ich habe eine Basisklasse Punkt von der die Klasse Kreis erben soll.
    Hier liegt der Fehler. Ein Kreis ist kein Punkt, also sollte er auch nicht von Punkt erben.
    Mach es so: Der Kreis hat einen Mittelpunkt und das ist eine Variable vom Typ Punkt.

    Zitat Zitat von sterndu1 Beitrag anzeigen
    //Klasse Kreis erweitert von der Klasse Punkt
    Die Formulierung ist etwas unpassend. Kreis erweitert Punkt. Man sagt auch: Kreis ist eine Spezialisierung von Punkt.
    Aber wie oben schon angedeutet, sollte Kreis ja eh nicht von Punkt erben.

    Zitat Zitat von sterndu1 Beitrag anzeigen
    Code:
    new String("("+x+", "+y+")");
    Guck dir bitte mal die Klasse StringBuilder an:
    http://java.sun.com/javase/6/docs/ap...ngBuilder.html

    Zu der eigentlichen Frage: Es wird nur 0 ausgegeben, wegen diese Zeile:
    Code:
    this.radius =0.0;

  3. #3
    sterndu1
    Gast
    Danke

    Habe : this.radius =0.0 in this.radius=radius umgeändert , und jetzt klappt es.

    Ich werde mir gleich mal den anderen Link ansehen.


    sterndu1

  4. #4
    Registrierter Benutzer Avatar von panzi
    Registriert seit
    04.05.2001
    Ort
    Kottingbrunn
    Beiträge
    609
    Lass einfach das vollkommen unnötige new String() rund um den Ausdruck weg. Das legt eine Kopie eines gerade neu angelegeten String an. Ist vollkommen redundant.
    Intel Core 2 Duo CPU 2.66GHz; Nvidia GeForce 8 8800 GTS; 4GB RAM; Fedora 12; KDE-testing

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •