Programmieren, Java

Von: , 17.09.2010 14:35 Uhr

Hallo, ich bräuchte eure Hilfe bei folgender Aufgabe

1. a) Erstellen Sie eine Klasse Kreis. Ein Kreis sei gekennzeichnet durch
einen Mittelpunkt, einen Radius sowie eine Farbe (z. B. blau). Der
Mittelpunkt besteht aus einer x- und einer y-Koordinate.
Neben diesen Attributen enthält die Klasse get- und set- Methoden für die
vier Attribute sowie drei Konstruktoren.
Der erste Konstruktor bekommt für alle Attribute der Klasse einen Wert
überwiesen und initialisiert damit die Attribute. Der zweite Konstruktor
bekommt nur die Koordinaten des Mittelpunktes sowie einen Wert für den
Radius übergeben und initialisiert damit die Attribute. Die Farbe wird in
diesem Fall auf „farblos“ gesetzt. Der dritte Konstruktor ist parameterlos und
enthält keine Anweisung.

Das Programm habe ich schon angefangen zu schreiben und sieht folgendermaßen aus:

public class Kreis {

private double x, y;
private double radius;
private String farbe;
private double mittelpunkt;

public Kreis(double x, double y, double radius, String farbe) {
this.x = x;
this.y = y;
this.radius = radius;
this.farbe = farbe;
x = 3;
y = 4;
radius = 7;
farbe = "blau";
}

public double getMittelpunkt(double x, double y) {
return mittelpunkt;

}
}

Meine Frage: WIe kann ich den Mittelpunkt in der return Anweisung in folgender Form ausgeben lassen: (x-Koord.;y-Koord)
und wie kann ich beim 2. Konstruktor sowohl den Mittelpunkt als auch den Radius zurückgeben? Dann müsste ich ja 2 get-Anweisungen in einer Zeile haben, wobei ich dann wieder einen Fehler erhalte.

11 Antworten zu dieser Frage

  1. Antwort von nach 28 Minuten 0 hilfreich
    Re: Programmieren, Java

    Der Mittelpunkt ist (wie der Name schon sagt) ein Punkt. Bei dieser Aufgabe wäre es wohl am einfachsten zwei get-Methoden zu machen:
    getMittelpunktX()
    getMittelpunkty()

    Der Konstruktor nimmt Werte entgegen, er gibt niemals welche zurück. Von dem her verstehe ich den letzten Teil der Frage nicht.

    Grüße, JasonDelife.

    • Antwort von nach 48 Minuten 0 hilfreich
      Re^2: Programmieren, Java

      aber wenn ich 2 get-Methoden für den Mittelpunkt anlege dann wären es ja auch 2 Konstruktoren und ich soll das ganze ja durch einen realisieren

      • Antwort von nach einer Stunde 0 hilfreich
        Re^3: Programmieren, Java

        aber wenn ich 2 get-Methoden für den Mittelpunkt anlege dann
        wären es ja auch 2 Konstruktoren und ich soll das ganze ja
        durch einen realisieren
        Du kannst mit einer get-Methode immer nur einen Wert zurückgeben, aber ein Konstruktor kann mehrere Werte entgegen nehmen.

        • Antwort von nach einer Stunde 0 hilfreich
          Re^4: Programmieren, Java

          Jetzt habe ich es folgendermaßen gemacht:

          public class Kreis {

          private double x, y;
          private double radius;
          private String farbe;
          private double mittelpunktX;
          private double mittelpunktY;

          public Kreis(double x, double y, double radius, String farbe) {
          this.x = x;
          this.y = y;
          this.radius = radius;
          this.farbe = farbe;
          x = 3;
          y = 4;
          radius = 7;
          farbe = "blau";
          }

          public double getMittelpunktX(double x) {
          return mittelpunktX;

          }

          public double getMittelpunktY(double y) {
          return mittelpunktY;

          }

          public double getRadius(double radius) {
          return radius;

          }
          }

          Das sind doch jetzt 3 Konstruktoren für den 2. Konstruktor in der Aufgabenstellung, obwohl es nur einer sein darf oder nicht?

          • Antwort von nach 2 Stunden 0 hilfreich
            Re^5: Programmieren, Java

            Du verwechselst hier Konstruktoren und Methoden. Das sind zwei paar Schuhe.

            Grüße, JasonDelife.

            • Antwort von nach 2 Stunden 0 hilfreich
              Re^6: Programmieren, Java

              Achso.. also müsste ich die 3 get-Methoden jetzt in einen 2. Konstruktor packen? Wie müsste ich diesen denn nennen?

            • Antwort von nach 5 Stunden 0 hilfreich
              Re^7: Programmieren, Java

              Achso.. also müsste ich die 3 get-Methoden jetzt in einen 2.
              Konstruktor packen? Wie müsste ich diesen denn nennen?
              Sorry, aber du hast den Sinn von Konstruktoren und get/set-Methoden nicht wirklich verstanden.
              Ohne dieses Wissen wirds aber schwierig.
              Ein paar Tipps:
              1. Konstruktoren heißen immer wie die Klasse.
              2. Sie geben NIE etwas zurück.
              3. Sie können aber Werte entgegennehmen (Parameter).
              4. get-Methoden haben KEINE Parameter, da sie einfach nur den Wert zurückgeben.
              5. Eine Klasse kann mehrere Konstruktoren haben, die alle gleich heißen (Konstruktoren müssen ja wie die Klasse heißen). Allerdings unterscheiden sich Typ und Anzahl der Parameter.

              Grüße, JasonDelife.

            • Antwort von nach 6 Stunden 0 hilfreich
              Re^8: Programmieren, Java

              Bloß wenn ich den Konstruktor vor die get-Methode setze erhalte ich eine Fehlermeldung.

  2. Antwort von nach einem Tag 0 hilfreich
    Re: Programmieren, Java

    immer wenn man meint, meine Methode müsste eigentlich zwei Werte zurückgeben, ist es Zeit für ein Objekt.

    public java.awt.Point getMittelpunkt

    > wie kann ich beim 2. Konstruktor sowohl den Mittelpunkt als auch den Radius zurückgeben?
    ein Konstruktur kann und soll gar nix zurückgeben, hat ja auch keinen Rückgabewert
    public Kreis(....)

    zwei Methoden getMittelpunkt, getRadius die aufgerufen werden können, empfehlen sich

  3. Antwort von nach einem Tag 0 hilfreich
    Re: Programmieren, Java

    Hi Mathematikus20,

    lass mich mal versuchen dir zu helfen. In der Aufgabe ist die Rede von 4 Attributen: x, y, radius und farbe.

    Vom einem Attribut "Mittelpunkt" ist nirgends die Rede. Ich glaube du machst dir das Leben zu schwer. Somit hast du 4 Attribute und 4 dazugehörige setter, die den Attributen Werte zuweisen und 4 dazugehörige getter die die Werte der Attribute zurückliefern.

    Dazu noch 3 Konstruktoren. Durch einen Konstruktor wird ein Objekt dieser Klasse erzeugt, ein Konstruktor hat nie einen Rückgabewert. Du kannst aus einen Konstruktor aus einem anderen Konstruktor heraus mit "this(...)" aufrufen. Da in der Aufgabe steht, das der 3. Konstruktor parameterlos sein soll, müssen die Variablen mit vernünftigen Werten vorinitialisiert werden.

    Ich würde die Aufgabe folgendermaßen lösen:


    public class Kreis {

    private double x = 0, y = 0;
    private double radius = 0;
    private String farbe = "farblos";

    public Kreis(double x, double y, double radius, String farbe) {
    this.x = x;
    this.y = y;
    this.radius = radius;
    this.farbe = farbe;
    }

    public Kreis(double x, double y, double radius) {
    this(x, y, radius, "farblos");
    }

    public Kreis() {
    }

    public void setX(double x) {
    this.x = x;
    }

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

    public void setY(double y) {
    this.y = y;
    }

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

    public void setRadius(double r) {
    this.radius = r;
    }

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

    public void setFarbe(String f) {
    this.farbe = f;
    }

    public String getFarbe() {
    return this.farbe;
    }
    }


    Wenn du unbedingt noch eine Methode möchtest, die dir den Mittelpunkt zurückliefert, musst du dir eine Klasse erstellen, die zwei double-Werte beinhaltet. Du solltest dir überlegen, ob es überhauput nötig ist, double Werte (Gleitkomma) zu verwenden oder ob nicht int Werte (Ganzzahlen) reichen würden.

    Gruß
    Jochen

    • Antwort von nach 2 Tagen 0 hilfreich
      Re^2: Programmieren, Java

      Hallo, Sie haben Recht, das habe ich zunächst gar nicht beachtet.
      Vielen Dank für Ihre Hilfe :)
      lg

Jetzt auf diese Frage antworten.