Frage bezüglich einer Klasse

hendla

Neues Mitglied
Hallo, ich bin absoluter neueinsteiger und versuche mir Java mit dem Buch "Programmieren lernen mit Java" selbst beizubringen.

Ich bin jetzt bei einem Projekt im Buch angelangt, wo mir einfach eine Sache nicht klar wird.
Zum Thema, es geht um eine Kreisberechnung mithilfe einer Klasse und einem Testprogramm.

Das Testprogramm sieht folgendermaßen aus
Java:
import javax.swing.JOptionPane;

public class Kreistest {
    public static void main(String[] args) {
    String kreisradius, einheit;
    double r;
    kreisradius = JOptionPane
        .showInputDialog("Geben Sie einen Kreisradius ein:");
    einheit = JOptionPane.showInputDialog("Geben Sie die Maßeinheit ein:");
    r = Double.parseDouble(kreisradius);
    Kreis k = new Kreis(r);
    System.out.println("Kreisradius: " + k.getRadius() + " " + einheit);
    System.out.println("Umfang: " + k.getUmfang() + " " + einheit);
    System.out.println("Fläche: " + k.getFlaeche() + " " + einheit
        + '\u00b2');
    }

}

und die Klasse folgendermaßen

Java:
package uebung05;

public class Kreis {
    double radius;

    Kreis() {
    radius = 0;
    }

    Kreis(double r) {
    radius = r;
    }

    double getRadius() {
    return radius;
    }

    void setRadius(double r) {
    radius = r;
    }

    double getUmfang() {
    return 2 * Math.PI * radius;
    }

    double getFlaeche() {
    return Math.PI * radius * radius;
    }

Das ist die Lösung von der CD, mein testprogramm sieht genauso aus, nur bei der Klasse verstehe ich diesen Part nicht
Java:
    Kreis() {
    radius = 0;
    }

ich habe den bei der Übungsaufgabe nicht eingefügt gehabt und das Programm funktioniert trotzdem. Kann mir einer erklären was mit diesem Code gemeint ist?

Liebe Grüße
 
Das ist der Default-Konstruktur. Der wird benutzt wenn du

Code:
Kreis k = new Kreis();
schreibst. Da du einen neuen Kreis in deinem Testprogramm aber mit Radius anlegst ist es wurscht ob der vorhanden ist oder nicht.
 
ich habe den bei der Übungsaufgabe nicht eingefügt gehabt und das Programm funktioniert trotzdem. Kann mir einer erklären was mit diesem Code gemeint ist?

Die Methode, die du ausgelassen hast, ist der Konstruktor der Klasse. Ein Konstruktor wird direkt beim Erstellen des Objekts automatisch aufgerufen. Die Variable radius auf 0 zu setzen bewirkt in dem Fall nichts oder ist überflüssig, weil eine int-Variable immer mit 0 initialisiert wird.
 

Zurück
Oben