Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Ich sitze hier an einer Aufgabe aus meiner Info-Probeklausur und komme einfach nicht auf die Lösung. Vielleicht kann mir ja jemand weiterhelfen.

Die Aufgabe lautet folgendermaßen:

Schreiben Sie eine Klassen-Methode fillArr, die unter Verwendung

des Aufrufs T.readZahl() von Tastatur gelesene Float-Werte in dem

als Parameter übernommenen Array arrFloat in Indexfolge ablegt,

solange nicht [durch Strg z] der Wert null erzeugt wurde [und der

Array nicht voll ist]. Zurückgegeben wird als int-Wert der Füll-

stand des Array [Anzahl der erfassten Float-Werte].

Mein Lösungsansatz:

static int fillArr(float[] arrFloat, int arrIndex) {

for (float zahl = 0F; zahl != null && arrIndex < arrFloat.length; zahl = t.readZahl())

{arrIndex++;

arrFloat[arrIndex] = zahl;

}

return arrIndex;

}
Wenn ich die Aufgabe richtig verstanden habe, kann man mit Strg+Z bei der Eingabe ein null erzwingen. Aber wie kriege ich dann heraus, dass die Float-Variable diesen Wert hat? Bei meiner Lösung bekomme ich von Eclipse eine Fehlermeldung, dass der Vergleich
zahl != null

nicht erlaubt ist (Die genaue Fehlermeldung kann ich euch jetzt nicht mitgeben, weil ich hier kein Eclipse und zuhause im Mom kein Inet habe).

Oder habe ich das mit Strg+Z falsch verstanden?

Bin für jeden Tipp dankbar.

Geschrieben

Ich hab mir jetzt mal die Klasse Float in der API angeschaut.

Ich bin mit Java und der API nicht so vertraut, weil ich (leider) nur im Studium Java programmiere, daher verstehe ich eine Sache nicht so wirklich:

Im Text steht "An object of type Float contains a single field whose type is float." Darunter in der Field Summary sind aber ganz viele Felder. Für mich als Laie irgendwie verwirrend...

Außerdem finde ich den Namen des Feldes nicht, das den primitiven Float enthält. Den Namen brauche ich doch, um auf dieses Feld zugreifen zu können, oder kann ich einfach mit

Float zahl = new Float(1F);

zahl = 2F;

neue Werte zuweisen?

Lacht nicht, ich bin ja lernwillig ;)

Geschrieben

dein array sollte vom typ Float (nicht float) sein.

Float f = 2F;

float flo = f;

funktioniert als zuweisung.

die statischen felder sind die maximalwerte die ein Float annehmen kann und noch ein paar andere spielereien.

Geschrieben

Servus,

auf das Feld mit dem Inhalt willst Du nicht direkt zugreifen, aber Du kannst Dir den Inhalt über longValue() besorgen. Schreiben tust Du entweder über den Konstruktor oder über static Float valueOf(float f).

Die Felder, die Du siehst, sind im Endeffekt nur Konstanten mit Werten, die man immer wieder mal braucht, aber keine klassische Eigenschaft eines Float-Objekts, wie eben der Inhalt. In der API-Doc siehst Du das Feld übrigens nicht, weil die API-Doc normalerweise nur die public und protected (also die (halb)öffentlichen) Schnittstellen dokumentiert. Das Feld wird aller Wahrscheinlichkeit nach private sein.

Denk dabei an einen der Grundzüge der OOP: Kapselung. Die Eigenschaften einer Klasse sollen nicht zugänglich sein, bzw. nur über Nachrichten, die man dem Objekt schicken kann. Genau das wird hier gemacht.

[EDIT]

funktioniert als zuweisung.

Nur unter Java 1.5, wegen Autoboxing. Unter 1.4 (noch recht verbreitet) geht das nicht.

[/EDIT]

Peter

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...