Erklärung Programm zur Kreisberechnung

AkiHawasaki

Mitglied
Das Programm soll den Radius eines Kreises einlesen über JoptionPane und dann die Fläche, den Umfang und den Radius als Konsolenausgabe ausgeben. Ich bin nicht auf die Lösung gekommen und habe mir die Lösung durchgelesen doch die Lösung verstehe ich nicht.


Code:
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;
    }

    void setUmfang(double u) {
    radius = u / (2 * Math.PI);
    }

    void setFlaeche(double f) {
    radius = Math.sqrt(f / Math.PI);
    }
}

Was genau bedeuten diese Zeilen? Ich verstehe den Sinn nicht, auch verstehe ich dieses return nicht, was für einen Sinn macht dieses Return in diesem Fall?


Code:
 Kreis(double r) {
    radius = r;
    }

    double getRadius() {
    return radius;
    }

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

Der Vollständigkeit poste ich nun auch die zweite Klasse. Diese macht mir aber eigentlich garnicht so die Probleme:


Code:
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');
    }

}
 

Javinner

Top Contributor
verstehe ich dieses return nicht
Java:
public void setID(int number)
{
    this.id = number;
}

public int getID()
{
    return this.id;
}

public boolean correctID(int number)
{
    return this.id == number;
}

int hereMyID = 1234567;
setID(hereMyID);
int giveMeHisID= getID();
giveMeHisID= 1234567;
boolean canGoIn= correctID(giveMeHisID);
canGoIn = true;
 

fhoffmann

Top Contributor
Hallo,

ein Kreis hat hat einen Radius, einen Umfang und eine Fläche.
Wenn man eines davon kennt, kann man sich die anderen beiden ausrechnen; es genügt also, eines davon zu speichern - in diesem Fall den Radius.
Das "return" gibt den gespeicherten oder berechneten Wert an den Aufrufer der Methode zurück - das ist Standard-Java; die Grundlagen eines Methodenaufrufs solltest du dir möglciierweise noch einmal anschauen.
 

AkiHawasaki

Mitglied
die Grundlagen eines Methodenaufrufs solltest du dir möglciierweise noch einmal anschauen.

Ich lerne mit einem Buch "Programmieren lernen mit Java" von Hans-Peter Habelitz. Ich habe irgendwie Probleme dem Buch zu folgen, nach jedem Kapitel folgen Übungsaufgaben die von Kapitel zu Kapitel riesen Sprünge vollziehen. Bin jetzt offen gesagt etwas überfordert. Es kommt mir so vor: In einem Kapitel wird erklärt wie ein Otto Motor funktioniert und im Anschluss ist die Übungsaufgabe einen Eurofighter zu bauen.
 

AkiHawasaki

Mitglied
Ich habe es auch nicht als böse aufgefasst. Hach... ich bin nur frustriert. Das return wurde erwähnt aber so recht verstehe ich nicht was es macht. Du sagtest es liefert den Wert an den Aufrufer der Methode zurück. Das macht natürlich auch Sinn aber wer ist der Aufrufer? Gibt er ihn an
Code:
Kreis(double r) {
    radius = r;
    }

zurück? Quasi an die Position in der Klammer? Oder ist dieses Argument eher mit dem Wert 0 definiert denn ich habe den Konstruktor ja 0 vorgegeben. Eigentlich verstehe ich dieses double r nicht. Das habe ich nirgendwo definiert. Ich habe radius niemals r genannt. Was also ist r?
 

fhoffmann

Top Contributor
Es gibt eine Insanzvariabele "radius"
Java:
double radius;
und es gibt einen "Konstruktor" (heißt wie die Klasse, hat KEINEN Rückgabewert - auch nicht void) mit einem Übergabeparameter r:
Java:
Kreis(double r) {
    radius = r;
 }
Dieser weist der weist der Instanzvariablen den Wert des Übergabeparameters zu.

Wenn du nun an einer anderen Stelle aufrufst:

Java:
Kreis meinKreis = new Kreis(42);
hat meinKreis einen Radius von 42 (Metern, Kilometern oder Daumen).
 

AkiHawasaki

Mitglied
Das von dir erwähnte Buch scheint bei einigen nicht gut anzukommen. Da gibt es wohl bessere. Versuchs mal mit Java ist auch eine Insel

Hm... Mir wurde mal gesagt das Java ist auch eine Insel eher geeignet wäre als Nachschlagewerk. So ganz ohne Vorkenntnisse soll das Buch nicht so empfehlenswert sein aber weiß nicht ob das stimmt. Ich Switche immer hin und her, was mir bei der Insel fehlt sind Übungsaufgaben mit den Lösungen. Hast du evtl. weitere Buchvorschläge? Ich war auch am überlegen ob ich mir irgendein "Für Kids" Buch hole, zumindest für die Grundlagen.
 

MoxxiManagarm

Top Contributor
Du kannst dir im Zweifelsfall immer versuchen die Sachen Bildlich anhand der Benennung vorzustellen.
'return' heißt hier soviel wie 'zurückgeben'.

Stell dir vor du bist ein Fahrgast im Zug und gibst dem Schaffner dein Ticket. Er tut dann irgendwas damit (Prüfen + Lochen) und gibt dir das Ticket gelocht zurück. Das Zurückgeben ist der 'return'. Das Prüfen und Lochen sind irgendwelche Vorgänge innerhalb der aufgerufenen Methode für das Vorzeigen des Tickets an den Schaffner.
 

mihe7

Top Contributor
Ich lerne mit einem Buch "Programmieren lernen mit Java" von Hans-Peter Habelitz.
Auch ich kenne das Buch nicht und habe mir gerade die Leseprobe (Kapitel 2 und 5) angesehen: das sieht mir auf den ersten Blick wirklich sehr gut aus. Hab das PDF aber nur mal durchgeblättert.

Schau Dir mal den Abschnitt "5.5 Ergebnisse" an.
 

AkiHawasaki

Mitglied
Ja... schon gelesen. Irgendwie klingelt es einfach nicht. Ich steh voll auf dem Schlauch. Naja, ich schau einfach mal weiter, vielleicht finde ich ein youtube video dazu.
 

AkiHawasaki

Mitglied
Ich habe nun ein eigenes Beispiel ausgedacht. Ich habe 3 Klassen.
Die erste Klasse heißt Manfred. Manfred habe ich mit verschiedenen Attributen deklariert unter anderem mit int alter;
Die zweite Klasse heißt Sophie, Sophie hat ebenfalls ein
Code:
int alter;
die dritte Klasse ist meine Main Klasse. Ich habe mit Manfred
Code:
 Manfred m=new Manfred();
eine Instanz aus Manfred gemacht richtig? Manfred ist nun das Objekt. Mit Sophie habe ich das selbe getan.Ich könnte nun in der Main Methode schreiben
Code:
m.alter=22;
würde ich das auf der Konsole ausgeben lassen würde es funktionieren.
Würde ich aber jetzt Manfreds alter nicht initialisieren sondern würde sagen Manfred ist 8 Jahre jünger als sophie, dann bräuchte ich den Rückgabewert damit Sophie ihr alter quasi an Manfred verrät und dann quasi 30-8=Manfred. Dafür bräuchte ich dann einen Rückgabewert. Ist das so korrekt? So vom verständnis?
 

mihe7

Top Contributor
eine Instanz aus Manfred gemacht richtig?
Ja, eine Instanz vom Typ Manfred.
Manfred ist nun das Objekt.
Nein, Manfred ist und bleibt die Klasse. Das Objekt existiert nur irgendwo im Speicher. Die Variable m enthält nur eine Referenz auf dieses Objekt. Salopp könnte man sagen, dass m ein Manfred ist. Man merkt schon an solchen Formulierungen, dass Deine Klassen "leicht" sinnfrei sind.

Drehen wir den Spieß mal um: was sind Manfred und Sophie? Bäume? Autos?

Würde ich aber jetzt Manfreds alter nicht initialisieren
... dann würde Java das für Dich übernehmen und alter würde automatisch mit 0 initialisert :) Das aber nur nebenbei.

dann bräuchte ich den Rückgabewert damit Sophie ihr alter quasi an Manfred verrät und dann quasi 30-8=Manfred. Dafür bräuchte ich dann einen Rückgabewert. Ist das so korrekt? So vom verständnis?
Wenn man zehn von zwei Augen zudrückt, dann ja.

Wir können das gerne durchgehen, wenn Du die Frage oben beantwortest :)
 

mihe7

Top Contributor
Manfred und Sophie sind Menschen.
Aha.

D. h. Du hättest dann z. B. eine Klasse Mensch, die Attribute für den Namen und das Alter (eigentlich wohl eher für das Geburtsdatum; aber egal) hätte.

Der konkrete Manfred, der 22 Jahre alt ist und die konkrete Sophie, die 30 Jahre alt ist, wären dann Objekte der Klasse Mensch.

Java:
Mensch m1 = new Mensch("Manfred", 22);
Mensch m2 = new Mensch("Sophie", 30);

Wenn Du jetzt den Altersunterschied ausrechnen willst, könnten Dir die beiden Objekte sagen, wie alt sie sind:

Java:
int alter1 = m1.getAlter();
int alter2 = m2.getAlter();
int altersunterschied = Math.abs(alter1 - alter2);

Soweit klar?
 

AkiHawasaki

Mitglied
Soweit so klar, aber eigentlich hätte ich gerne dass man nur weiß das Sophie 30 ist und Manfred 8 Jahre jünger ist als Sophie. Das heißt ich hätte gerne bei Manfred den Parameter 22 ersetzt durch eine Variable die immer abhängig vom Alter Sophie's ist.
 

mihe7

Top Contributor
Naja, was Du mit den Werten anfängst, ist ja Deine Sache, z. B.

Java:
Mensch m2 = new Mensch("Sophie", 30);
int alterManfred = m2.getAlter() - 8;
Mensch m1 = new Mensch("Manfred", alterManfred);

Das ist aber nicht das, worauf ich hinaus will.

Alles, was wir bislang gemacht haben, passiert außerhalb der Mensch-Klasse, z. B. in der main-Methode.

Es wäre aber vielleicht ganz nett, wenn man ein Mensch-Objekt nach dem Altersunterschied bzgl. eines anderen Mensch-Objekts fragen kann. Sprich: wenn ich Manfred nach dem Unterschied zwischen seinem Alter und dem von Sophie fragen könnte.

Dazu kann man in der Klasse Mensch eine Methode einfügen:

Java:
public int berechneAltersunterschied(Mensch andererMensch) {
    return this.alter - andererMensch.alter;
}

Verstehst Du, was hier passiert?
 

AkiHawasaki

Mitglied
Eine Methode die Public ist auf die andere Klassen zugreifen können, eine Datei vom Typ int der Methodenname und in Klammern Parameter.
Return eine Rückgabe explizit dieses this alter - andererMensch.alter;
hm.... ich muss raten. Ein Vergleich?
 

Javinner

Top Contributor
Hast du evtl. weitere Buchvorschläge?
Es kommt darauf an, was für dich selbst in Frage kommt. Ich habe meine Ersten Schritte mit Java-Hamster gemacht und das erste Buch hat mich wirklich weit gebracht. Durch dieses Buch habe ich die imperativen Sprachkonzepte kennengelernt und wirklich verstanden. Aber das Konzept ist nicht für jeden zugänglich.
Was ich uneingeschränkt empfehle ist das Buch Grundkurs Programmieren in Java
Parallel dazu Oracle-Docs und Java ist auch eine Insel, aber das habe ich bereits verlinkt.
Dass Java ist auch eine Insel eher als Nachschlagewerk gedacht, jedoch fand ich die Kapitel von 1 bis 5 doch schon zugänglich, für jemand, der die Grundlagen verstanden hat.
 

Javinner

Top Contributor
Ich habe mir jetzt den Thread durchgelesen und bin immer noch nicht schlauer, was du da gerade wissen willst? Wo bist du gerade? Welches Thema? Wie heißt das Kapitel?
Das ist alles sehr schräg!
 

AkiHawasaki

Mitglied
Ich bin Kapitel 5.7 bei den Übungsaufgaben angekommen. Hier steht folgende Aufgabe:

Erstellen sie im Projekt JavaUebung05 im Package uebung05 eine Klasse mit dem Namen Kreis. Die Klasse soll nur über ein Datenelement (Attribut) mit dem Namen radius verfügen, in dem der Radius als Kommazahl festgehalten wird. Erstellen Sie einen Konstruktor mit leerer Parameterliste, der den Radius mit dem Wert 0 initialisiert und einen Konstruktor, dem als Parametereine Kommazahl zur Initialisierung des Radius übergeben wird. Die Klasse soll über folgende Methoden verfügen:
double getRadius();
setRadius(double r);
double getUmfang();
double getFlaeche();
Erstellen Sie dazu ein Testprogramm mit dem Namen Kreistest, das mit einem JOptionPane.showInputDialog den Radius, den Umfang und die Fläche des Kreises in der Konsole mit System.out.println ausgibt.

Beim Buch ist eine Lösung mit dabei, die habe ich am Anfang hingeschrieben. Ich kann sie nicht nachvollziehen und auch nicht reproduzieren, ich verstehe es nicht. Ich bin gerade dabei das Kapitel einfach nochmal von vorne zu lesen. Die Sprünge die das Buch macht sind mir einfach zu groß. Ich gehe jetzt alles nochmal Haar genau und sehr kleinlich ab, aber wie ich auf die Lösung kommen soll die auf der CD ist, ist mir irgendwie ein Rätsel.
 

Javinner

Top Contributor
Die Sprünge die das Buch macht sind mir einfach zu groß
Ein Indiz dafür, dass man zu viel will. Lasse dir Zeit beim Lernen und gehe zum nächsten Kapitel über erst, wenn du so weit bist. Ich versuche dir mal eine Klasse anhand eines Beispieles aus der Geometrie näher zu bringen.


Ein Rechteck. Ein Rechteck ist ein Rechteck und was soll daran ungewöhnlich sein?
Hier müssen wir uns fragen, welche Eigenschaften ein Rechteck haben kann?
Dabei stellt man fest, ein Rechteck hat:
  • die Breite X
  • die Höhe Y
Wenn man den Rechteck als eine Klasse betrachtet, dann sind diese beiden Eigenschaften seine Attribute. Sprich, ein Rechteck ist nur dann ein Rechteck, wenn er
  • die Breite
  • die Höhe
  • die Rechtwinkligkeit aller Ecken soll genau 90 Grad sein
Die Rechtwinkligkeit wird hier einfachheitshalber weggelassen.
Also ist es essentiell, dass man beim Erstellen eines Rechteckes diesem seine Attribute bei der Entstehung mitgibt.
  • private final double breite;
  • private final double hoehe;
Nun hat ein Rechteck weitere Eigenschaften:
  • den Umfang
  • die Fläche
und genau diese können anhand der Attribute ausgerechnet werden und für jeden Aufrufer zur Verfügung gestellt werden. Als Beispiel hier könnte man sich vorstellen, dass Bauer Müller die Kosten für seine Wiese berechnen möchte und diese ist rechteckig mit Maßen X: 500 und Y: 350 . Also muss er nur noch die Klasse Rechteck ins Leben rufen, dieser die Maße des Feldes als Werte für Attribute übergeben und dann für eine passende Variable die Methode der Klasse Rechteck aufrufen. Jetzt muss nur noch jede der Methoden dafür richtig implementiert werden und wie wir alle wissen ist der Umfang eines Rechteckes mit Seiten a und b die Summe von 2a + 2b ist. Die Fläche eines Rechteckes wird mittels Multiplikation beider Seiten ausgerechnet: a x b

Nun schau dir die Klasse Kreis genau an und du wirst die Methoden zur Flächenberechnung so wie für die Umfangberechnung finden, und wie du siehst, sind die Methoden so implementiert, wie es die Klasse erfordert. Damit du es besser vergleichen kannst, hier die Klasse Rechteck
Java:
public class Rechteck
{
    private final double breite;
    private final double hoehe;

    public Rechteck(double breite, double hoehe)
    {
        this.breite = breite;
        this.hoehe = hoehe;
    }

    public double getBreite()
    {
        return breite;
    }

    public double getHoehe()
    {
        return hoehe;
    }
  
    public double getUmfang()
    {
        return (this.breite + this.breite + this.hoehe + this.hoehe);
    }
  
    public double getFlaeche()
    {
        return (this.breite * this.hoehe);
    }
  
}
Und die Main-Klasse
Java:
public class KlassenHilfe
{

  
    public static void main(String[] args)
    {
       double breite = 500;
       double hoehe = 350;
     
       Rechteck feldFuerBauerMueller = new Rechteck(breite, hoehe);
       double feldFlaeche = feldFuerBauerMueller.getFlaeche();
       double feldUmfang = feldFuerBauerMueller.getUmfang();
     
       System.out.println(String.format(Locale.GERMAN, "Feldfläche: %f, Feldumfang: %f%n", feldFlaeche, feldUmfang));
    }
  
/** Output */
Feldfläche: 175000,00 , Feldumfang: 1700,00
}
Es gibt es einige Prinzipien nach welchen Klassen erstellt werden und mit der Zeit bekommt man auch das Verständnis, warum es so besser ist, jetzt für den Moment lasse ich es jedoch.

Verstehst du es?
 

mihe7

Top Contributor
Return eine Rückgabe explizit dieses this alter - andererMensch.alter;
hm.... ich muss raten. Ein Vergleich?
Der erste Teil ist vollkommen richtig: es wird das Ergebnis von this.alter - andererMensch.alter zurückgegeben. Das ist aber kein "Vergleich" sondern eine einfache Berechnung.

Das this ist dabei eine Referenz auf das Objekt, für das die Methode aufgerufen wurde (kannst Du mit "mein" oder "ich" vergleichen; ein Bezug auf sich selbst). andererMensch ist dagegen eine als Parameter übergebene Referenz auf ein Objekt.
 

AkiHawasaki

Mitglied
Ich probiere es nochmal, ich denke langsam wird's besser.

Die Klasse Rechteck hat die Attribute höhe und breite. Anschließend erstelle ich eine Methode, diese nenne ich Rechteck als Parameter setze ich die höhe und breite vom typ double. Um die breite zu bekommen erstelle ich noch eine Methode, die zweite Methode gibt einen rückgabewert zurück vom typ double und diese Methode nenne ich getbreite. Dieses return sendet mir quasi den Wert den breite hat an das double, das double ist der rückgabewert breite?
In der Klasse Klassenhilfe mache ich aus der Klasse Rechteck eine Instanz mit Rechteck feldFuerBauerMueller=new Rechteck, in den Klammern schreibe ich die Variablen breite und höhe hin. Werden diese Parameter übergeben?
Wenn ich nun einen Behälter erstelle tue ich das mit dem Typ double und benenne ihn zb wie du feldFlaeche. Ich kann dann sagen FeldFlaeche befindet sich in der Instanz feldFuerBauerMueller und ist mit der Methode getFlaeche aufzurufen. Das Ergebnis kommt jetzt quasi feldFlaeche bzw feldFlaeche ist das Ergebnis. Dies könnte ich zB. machen wenn ich sage SystemOutPrintln(feldFlaeche); Die Werte von höhe und breite holt er sich quasi von der 1. Methode?
Code:
public Rechteck(double breite, double hoehe)
     {
         this.breite = breite;  // Das Return gibt den Rückgabewert hier zurück?
         this.hoehe = hoehe;
     }

     public double getBreite() //Oder hierhin? Ich würde sagen sie gibt den Wert
     {                                     an getBreite() zurück.
         return breite;
     }

Kommt das so hin?
 
Zuletzt bearbeitet:

Javinner

Top Contributor
eine Methode, diese nenne ich Rechteck als Parameter setze ich die höhe und breite vom typ double
Ein sogenannter Konstruktor. Ein Konstruktor sorgt dafür, salopp ausgedrückt, dass alle wichtigen Attribute der Klasse gleich zu Beginn initialisiert werden. Ein theologisches Beispiel: wenn der liebe Gott eine Katze erschaffen will, dann schnappt er sich die Unterlagen für Klasse Katze und schaut nach, was im Konstruktor steht: vier Pfoten, ein Schwanz usw., so dass die Katze zu ihrer Geburt alles, was eine Katze ausmacht, bekommt. Wenn die Klasse Katze kein leeren Konstruktor besitzt, müssen beim erstellen der Klasse die Werte für Attribute an die Klasse übergeben werden, sonst kann man die Instanz der Klasse nicht initialisieren.

Um die breite zu bekommen erstelle ich noch eine Methode, die zweite Methode gibt einen rückgabewert zurück vom typ double und diese Methode nenne ich getbreite
Sogennante Getter und Setter. Es gibt Prinzipien für die Klassenerstellung und eine davon sagt, dass die Klasse nach außen nur das nötigste liefern darf und dass eigene Attribute nur über spezielle Methoden zu erreichen sind.
In der Klasse Klassenhilfe mache ich aus der Klasse Rechteck eine Instanz mit Rechteck feldFuerBauerMueller=new Rechteck, in den Klammern schreibe ich die Variablen breite und höhe hin. Werden diese Parameter übergeben?
Es werden die zuvor erstellten Parameter an die Instanz der Klasse übergeben, ja.
Wenn ich nun einen Behälter erstelle tue ich das mit dem Typ double und benenne ihn zb wie du feldFlaeche
Du erstellst eine Variable von einem primitiven Typ, welcher die Fläche der Instanz rechteck der Klasse Rechteck als Wert speichert
Ich kann dann sagen FeldFlaeche befindet sich in der Instanz feldFuerBauerMueller und ist mit der Methode getFlaeche aufzurufen
Du kannst für jeden Interessenten den Wert der Fläche der Instanz rechteck der Klasse Rechteck per Methode getFläche() aufrufen.
Das Ergebnis kommt jetzt quasi feldFlaeche bzw feldFlaeche ist das Ergebnis
?
Dies könnte ich zB. machen wenn ich sage SystemOutPrintln(feldFlaeche)
Da die Klasse System die toString() Methode der primitiven Typen "versteht", kann das System den Wert des zu übergebenden Types in der Konsole ausgeben.
Die Werte von höhe und breite holt er sich quasi von der 1. Methode?
Die beiden Werte, die zu Beginn an den Konstruktor der Klasse Rechteck übergeben wurden, werden:
in Attributen der Klasse gespeichert
zur Berechnung weiterer Eigenschaften an weitere Methoden intern weitergegeben
 

AkiHawasaki

Mitglied
Die beiden Werte, die zu Beginn an den Konstruktor der Klasse Rechteck übergeben wurden, werden:
in Attributen der Klasse gespeichert
Das bedeutet {
double breite = 500;
double hoehe = 350;
Werden an den Konstruktor übergeben. Wenn das Programm ausgeführt wird steht hier folgendes public Rechteck(double breite, double hoehe) aber in der nächsten zeile würde dann stehen: this.breite = 500;
this.hoehe = 350;? Also wie gesagt, wenn es ausgeführt wird.
 

AkiHawasaki

Mitglied
So, das Programm wird weiter ausgeführt. Wir kommen nun zur Zeile
Code:
public double getBreite()
     {
         return breite;
     }
Was ändert sich hier? Wo wandern die 500 hin?
public double 500 oder wie würde es aussehen wenn das Programm läuft?
 

VfL_Freak

Top Contributor
Moin,

Code:
public double getBreite()
     {
         return breite;
     }
Was ändert sich hier? Wo wandern die 500 hin?
public double 500 oder wie würde es aussehen wenn das Programm läuft?
Es ändert sich gar nichts!!
Der in 'breite' gespeicherte Wert wird an die aufrufende Stelle zurückgegeben und kann dort verwendet werden ...
VG Klaus
 

AkiHawasaki

Mitglied
Das heißt wenn ich
double irgendwas= feldFuerBauerMueller.getBreite(); machen würde und dann
System.out.println(irgendwas); erst dann würde 500 als Konsolenausgabe kommen?
 

AkiHawasaki

Mitglied
Wozu brauch ich die denn dann? Ich errechne den Wert der Fläche ja aus
public double getFlaeche()
{
return (this.breite * this.hoehe);
}

die Breite und die Höhe hat er ja von der Klasse Klassenhilfe übergeben bekommen.
 

AkiHawasaki

Mitglied
Die ist:
Code:
public double getBreite()

     {

         return breite;

     }

Klassenhilfe hat dem Konstruktor doch die werte Übergeben. Warum kann ich dann nicht einfach
public double getFlaeche()
{
return (this.breite * this.hoehe);
}
Mit double feldFlaeche = feldFuerBauerMueller.getFlaeche();
Systemoutprintln(feldFlaeche); ausgeben?
 

mrBrown

Super-Moderator
Mitarbeiter
Kannst du machen, da spricht nichts gegen.

Nur willst du ja nicht immer die Fläche haben, sondern irgendwann auch mal die Breite.
 

mihe7

Top Contributor
Mal eine kleine Aufgabe. Vervollständige den Code:

Java:
public static void zeige(Rechteck r) {
    // gib Höhe und Breite sowie den Umfang und die Fläche
    // des Rechtecks r auf der Standardausgabe aus.
}
 

AkiHawasaki

Mitglied
Nein sorry. Ich bekomme ihn nicht vervollständigt. Ich habe eine Methode die keinen Ausgabewert hat und ein Parameter mit Namen Rechteck r. Ich weiß nicht was Rechteck r ist. Damit weiß ich nicht was ich anfangen soll. Es erinnert mich an die public static void main(String[] args){
Methode aber so weit bin ich noch nicht. Das habe ich noch nicht gelernt.
 

mihe7

Top Contributor
Ich habe eine Methode die keinen Ausgabewert hat und ein Parameter mit Namen Rechteck r.
Richtig, die Methode gibt nichts an den Aufrufer zurück. Sie soll ja auch nur etwas auf dem Bildschirm darstellen. Der Parameter hat den Namen r und ist vom Typ Rechteck.

Ich weiß nicht was Rechteck r ist.
Rechteck ist die Klasse von @Javinner, mit der Du heute schon den ganzen Tag rumspielst.

Mal einfach formuliert: die Methode bekommt von einem x-beliebigen Aufrufer ein x-beliebiges Rechteck übergeben. In Methode muss das übergebene Rechteck nur noch benutzt werden. Dazu kannst Du es mit r ansprechen. Du könntest r also einfach fragen, wie hoch es ist, wie breit es ist, welchen Umfang es hat usw. Die Antwort gibst Du dann einfach auf dem Bildschirm aus.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Programm erklärung Java Basics - Anfänger-Themen 7
JaZuDemNo Code Erklärung Java Basics - Anfänger-Themen 3
M Erklärung von Ausnahmebehandlung in Methoden Java Basics - Anfänger-Themen 13
S Erklärung BufferedReader und InputStreamReader Java Basics - Anfänger-Themen 4
S Erklärung zur Methode und array Java Basics - Anfänger-Themen 12
I Array in umgekehrter Reihenfolge - Erklärung - Java Basics - Anfänger-Themen 3
KogoroMori21 Erklärung zum Ternären Operator Java Basics - Anfänger-Themen 4
I Erklärung zum Java Code Java Basics - Anfänger-Themen 2
D Erklärung Java Basics - Anfänger-Themen 3
S Bitweise Operatoren" >>>",">>","<<" erklärung Java Basics - Anfänger-Themen 5
D Erklärung eines Satzes Java Basics - Anfänger-Themen 0
M Erklärung: Int IndexOf (String s) Java Basics - Anfänger-Themen 3
C Methoden erklärung Java Basics - Anfänger-Themen 8
W FileReader - Bitte um Erklärung Java Basics - Anfänger-Themen 7
E Erste Schritte Gute Erklärung zu Objekten / Klassen / Methoden / Sichtbarkeiten auf Deutsch Java Basics - Anfänger-Themen 3
D Erklärung static boolean Java Basics - Anfänger-Themen 6
J Bitte um Erklärung Java Basics - Anfänger-Themen 4
C Polymorphie - Erklärung bitte Java Basics - Anfänger-Themen 5
O Über Map laufen Erklärung Java Basics - Anfänger-Themen 4
H Primzahltest : Erklärung zum Code Java Basics - Anfänger-Themen 2
M Erklärung Code Mergesort Bitte Java Basics - Anfänger-Themen 3
N While Schleife Erklärung Bitte Java Basics - Anfänger-Themen 3
B Benötige Erklärung für Lösungsansatz Java Basics - Anfänger-Themen 0
M web.xml Abschnitt Erklärung Java Basics - Anfänger-Themen 2
Z Fibonacci rekursiv meine Erklärung stimmt so? Java Basics - Anfänger-Themen 2
A erklärung von code Java Basics - Anfänger-Themen 4
A DezimalZuBinär - Erklärung der Vorgehensweise des Programms Java Basics - Anfänger-Themen 4
Z Fibonacci Array Erklärung Java Basics - Anfänger-Themen 5
K Erste Schritte Datenbank SQL erklärung Java Basics - Anfänger-Themen 15
H Methoden Bitte um Erklärung der askString-Methode Java Basics - Anfänger-Themen 15
G Erklärung .next Java Basics - Anfänger-Themen 4
D Erklärung Kalenderwoche Java Basics - Anfänger-Themen 14
T Erklärung zur Methode, Modulator Java Basics - Anfänger-Themen 3
V Objekte/Klassen erstellen - Erklärung anhand Beispiel Java Basics - Anfänger-Themen 4
P Methoden Erklärung wie ich eine spezielle Methode richtig anwende Java Basics - Anfänger-Themen 9
S Threads Erklärung ReentrantLock Java Basics - Anfänger-Themen 6
B Kleine Erklärung zu einer Codezeile benötigt Java Basics - Anfänger-Themen 5
G Bitte um Erklärung dieser einer Zeile Java Basics - Anfänger-Themen 5
R Interpretation/Erklärung main Java Basics - Anfänger-Themen 4
Helgon Polymorphie Generischer Methodenkopf - Erklärung Java Basics - Anfänger-Themen 3
W OOP Konstruktoren Erklärung Java Basics - Anfänger-Themen 14
E Quellcode Erklärung Java Basics - Anfänger-Themen 8
R Vererbung Bitte um Erklärung - Instanzvariablen Java Basics - Anfänger-Themen 8
A Java Erklärung? Java Basics - Anfänger-Themen 4
D Beans Erklärung Java Basics - Anfänger-Themen 11
Q Klausur aufgabe Erklärung Java Basics - Anfänger-Themen 12
G Bitte um Erklärung Java Basics - Anfänger-Themen 9
O Erklärung für Pattern Java Basics - Anfänger-Themen 5
K gute erklärung Java Basics - Anfänger-Themen 5
Screen Erklärung von der Umwandlung von .class in .jar o. .exe ! Java Basics - Anfänger-Themen 5
Spin Taschenrechner - Erklärung Java Basics - Anfänger-Themen 9
S Code-Erklärung Java Basics - Anfänger-Themen 4
J Bitte um Erklärung für einen Java-Ausdruck Java Basics - Anfänger-Themen 8
M enhanced for - erklärung Java Basics - Anfänger-Themen 3
K Erklärung der Syntax Java Basics - Anfänger-Themen 6
R Erklärung bitte Java Basics - Anfänger-Themen 3
G Erklärung for-Schleife bei Strings Java Basics - Anfänger-Themen 4
tobiasbeil Fehler array initialisierung. Nur erklärung bitte. Java Basics - Anfänger-Themen 2
F Threads - Erklärung und Beispielprogramm Java Basics - Anfänger-Themen 4
D Erklärung für eine Abfrage. Java Basics - Anfänger-Themen 9
D Eine Erklärung für eine 3D-Schleife bitte. :) Java Basics - Anfänger-Themen 4
B [suche erklärung] - sicherheit beim login Java Basics - Anfänger-Themen 3
J Delay erzeugen, ohne Programm zu blockieren Java Basics - Anfänger-Themen 7
Ü Dead Code im Programm? Java Basics - Anfänger-Themen 13
M Java Mail Programm Java Basics - Anfänger-Themen 4
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
M Mini Jar-Programm Java Basics - Anfänger-Themen 51
G JTable Listselectionlistener friert das Programm ein Java Basics - Anfänger-Themen 8
M Das Programm stellt nichts dar Java Basics - Anfänger-Themen 2
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
Z Programm Ideen Java Basics - Anfänger-Themen 8
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
T Programm stürzt ab Java Basics - Anfänger-Themen 40
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
Jul1n4tor Programm mit Scanner und If-Statements Java Basics - Anfänger-Themen 2
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
K Ist das Programm schlecht bzw. schlampig programmiert ? Java Basics - Anfänger-Themen 9
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
K Warum läuft das Programm nicht(bzw. nicht richtig) Java Basics - Anfänger-Themen 4
M Von Eclipse zum richtigen Programm Java Basics - Anfänger-Themen 1
nbergmann IntelliJ: Wie lade ich ein fertiges Programm aus dem Lehrbuch? Java Basics - Anfänger-Themen 26
D Anfängerfrage zu meinem Programm. Java Basics - Anfänger-Themen 15
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 22
I Jetty starten von Programm (Main) Java Basics - Anfänger-Themen 27
Kydo Programm Beschreibung Java Basics - Anfänger-Themen 3
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 7
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
D JAVA Programm schreiben Java Basics - Anfänger-Themen 46
P exportiertes Programm funktioniert nur teilweise Java Basics - Anfänger-Themen 7
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
M Wo hält das Programm an? Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben