Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

21.10.2011, 21:21

Java - BigDecimal

Ich hätte eine Verständnisfrage zur Klasse BigDecimal.

Wenn ich eine Instanz von BigDecimal erzeuge, z.B.
BigDecimal z1 = new BigDecimal(irgendeinstring);

Wie kann es sein, dass ich direkt über den Namen der Instanz auf den Wert zugreifen kann?
System.out.println(z1);

Mir ist eher vertraut, dass ich hier eine getMethode verwenden müsste um an den Wert zu kommen, in Ausnahmenfällen könnte ich evtl. per Punktoperator auch direkt auf die Instanzvariable zugreifen aber hier gebe ich nur die Instanz selbst an. Wie ist es möglich, dass ich so den Wert erhalten kann?
„lean over the bowl and then take a dive all of you are dead. i am alive“

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

2

21.10.2011, 21:35

Ich würde auf die Methode toString wetten.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

3

21.10.2011, 22:59

Ich glaube bei Java war es so, wenn man ein Object so wie du "ausgeben" will, wird deren toString methode aufgerufen. Wenn die nicht von der Klasse Object (oder so) überschrieben wurde, wird die Speicheradresse oder sowas ausgegeben.

Denk is war so ähnlich.

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

4

21.10.2011, 23:17

es wurde bereits richtig genannt:
da Java nicht so viel "Magie" besitzt, wie beispielsweise C#, ist die einzige Möglichkeit, dass in dem Fall println(Object) (die println() Überladung, die Ein Objekt als Parameter erwartet) mit deinem BigDecimal als Parameter aufgerufen werden kann
da nur Texte (Zeichenketten) ausgegeben werden können, muss das Objekt erst in eine umgewandelt werden und die einzige Möglichkeit, die jedes Objekt dafür liefert, ist toString()
BigDecimal hat diese Methode überladen und deswegen wird auch der richtige Wert ausgegeben
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Noctarius

Treue Seele

Beiträge: 120

Wohnort: Düsseldorf

Beruf: Manager of Developer Relations at Hazelcast, Inc. & Consultant for Scaleable Gameserver Systems

  • Private Nachricht senden

5

22.10.2011, 18:27

toString() gibt normal die Klasse@HashCode aus. Wenn du die Methode überschreibst, kannst du aber sinnvolles ausgeben lassen :)

Werbeanzeige