Frage von SoSoWo, 39

Wie kann ich mithilfe von Bluej mir z.b die Fläche eines Rechtecksausrechnen?

Hallo, ich lerne gerade ewtas mit bluej . Ich füge in die Klasse: "Rechteck" die Attribute länge und breite hinzu. Jetzt soll ich folgende Methoden erstellen: double flaecheBerechnen(); , boolean istQuadrat (); , void groesseSetzen (int neuL, int neuB); , double diagonaleBerechnen ();. Wie soll ich die Methoden nun erstellen dass ich diese Ergebnisse aus den Methoden bekomme? Muss ich auch was im Konstruktor machen? Bisher habe ich nur die Attribute (unteranderem im Konstruktor mit pbreite) erstellt.

Danke im vorraus ! :)

Antwort
von crizeo, 39

Also die Variablen werden zu Beginn der Klasse, nicht im Konstruktor, deklariert (erstellt).

Jetzt kannst du einen Konstruktor mit zwei Parametern erstellen, der die beiden Variablen mit den beiden Eingaben, also den Parametern, initialisiert (überschreibt/mit Werten befüllt).
Wurde also dieser Konstruktor aufgerufen, hast du ein Objekt der Klasse, welches die beiden Variablen enthält, welche wiederum die eingegebenen Größen enthält.

Jetzt kannst du deine Methoden erstellen und die beiden zu Beginn der Klasse definierten Variablen verwenden. Beispielsweise die Methode:

public double berechneFlächeninhalt() {
    return breite*hoehe;
}

Achte darauf die richtigen Datentypen zu verwenden. Sind die Variablen breite und hoehe beispielsweise vom Typ int, dann muss der Rückgabewert der Methode natürlich auch int sein (da int*int=int); oder du lässt es bei double und schreibst:

return (double) breite*hoehe;

Kommentar von crizeo ,

Variablen = Attribute

Kommentar von PerfectMuffin ,

Nicht ganz.

Attribute sind eine Art Variablen.

Denn lokale Variablen sind keine Attribute.

Kommentar von crizeo ,

Was ist dein Problem? Kannst auch nichts außer Kritik üben, statt lieber was sinnvolles beizutragen. Hab Variable = Attribute geschrieben weil ich die Begriffe hier äquivalnt benutzt habe, nicht weil es (in der theoretischen Informatik) korrekt ist. Praktisch ist es verständlich.

Kommentar von crizeo ,

Okay ja, jetzt hast du deinen Beitrag nochmal bearbeitet. Damit hast du natürlich recht aber ich nehm die Begriffe mit gleicher Bedeutung her; ging mir nur ums Verständnis

Kommentar von SoSoWo ,

Also ich hab bisher das, aber das ist falsch :/ kannst du mich bitte korriergen : 

public class Rechteck

{ private String länge; private String breite;  

public Rechteck(){

 länge = 5; 

 breite = 8; } 

 public double berechneFlächeninhal() { return länge*breite; }}

Kommentar von crizeo ,

Ich hab schon länger nichts mehr mit BlueJ gemacht, aber ersetz mal die Umlaute. Ä, ö und ü werden meist wie Sonderzeichen nicht erkannt.

Also schreib zum Beispiel hoehe statt höhe

Kommentar von SoSoWo ,

Ist gemacht hat aber leider wenig gebracht, da steht nun incompatible type:...

Kommentar von SoSoWo ,

AHH ich habe den fehler gefunden ich habe als ich die ATtribute bestimmt habe String benutz anstatt int ^^


Kommentar von SoSoWo ,

Kannst du mir auch sagen wie ich dass nun mit der Diagonale mache und mit wahr oder nicht wahr ? Hier nochmal die ganze Aufgabe:

 Die Klasse Rechteck besitzt die Attribute laenge und breite. Implementiere die Klasse undfolgende Methoden mit entsprechenden Inhalten:

(a) double flaecheBerechnen();

(b) boolean istQuadrat ();

(c) void groesseSetzen (int neuL, int neuB);(d) double diagonaleBerechnen ();

d) double diagonaleBerechnen ();

Kommentar von JavaTheHutt ,

Wie stellt man den fest, ob ein Rechteck ein Quadrat ist? Was muss gegeben sein, damit dies eintritt?

Ich nehme an, dass ihr schon mit Vergleichsoperatoren gearbeitet habt, ansonsten würdet ihr diese Aufgaben wohl nicht bekommen.

Du hast "int" als Datentyp für Breite und Höhe verwendet. Warum? Für die restlichen Aufgaben hast du damit eher Probleme, als mit einem Datentyp für Gleitzahlen.

Kommentar von crizeo ,

Wie JavaTheHutt geschrieben hat wuerde ich an deiner Stelle double fuer die Attribute nehmen, dann musst du bei den Methoden weniger umformen und hast es leichter.

Zu den anderen Aufgaben: Naja dasmusst du schon selbst hinkriegen, ich schreib jetzt nicht ewig Code. Aber bei der Funktion istQuadrat wird ein boolscher Wert zurueckgegeben (boolean) (true/falss), der eben sagt obs quadratisch ist oder nicht. Wann is es quadratisch? Wenn die Kanten gleich lang sind. Zum Vergleichen gibts den Operator ==, der true oder false liefern kann. Die Diagonale kriegst du ueber die Formel a^2 + b^2 = c^2, wobei a und b die Kanten sind. Quadrieren kannst du einfach mit x^2 = x*x und die Wurzel ziehen (brauchst du um c aus c^2 zu bekommen) geht mit c = Math.sqrt(Quadrat von c). Dafuer brauchst du evtl. import java.lang.Math;

Keine passende Antwort gefunden?

Fragen Sie die Community