Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Softwaretechnik » Object - Array » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 5 Beiträge
Java_Beginner

Vielen Dank für deine Hilfe :-)
eulerscheZahl

1) Java führt hier einen impliziten Cast durch: String + int = String + (String)int
besser wäre String.valueOf(durchmesser) - da ersparst du dir die Stringkonkatenation.

2) toString() gibt nur einen String zurück. Den kannst du dann je nach Lust und Laune auf die Console ausgeben, in eine Textdatei ausgeben, bei GUI in ein Label schreiben, vorlesen lassen, .... Das ist also viel flexibler.

3) du überschreibst toString() dann, wenn du eine textuelle Beschreibung der Instanz haben willst.
Da stellt sich die Frage, warum nicht eine Methode print() schreiben.
In der main geht auch einfach System.out.println(obj[0]);, der Aufruf von toString() klappt implizit. Das ist bei print() nicht der Fall.

und üblicherweise stellt man ein @Override voran, wenn man eine Methode überschreibt.
Java_Beginner

Vielen Dank für die Antwort.

Hier einmal mein neuer, funktionierender Code:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:

package object_test;

public class Object_Test 
{
    public static void main(String[] args) 
    {
        Object [] obj = new Object [1];
        obj[0] = new Teller (4);
        System.out.println(obj[0].toString());
    }
}

class Teller
{
    private int durchmesser; 
    public Teller (int durchmesser)
    {
        this.durchmesser = durchmesser; 
    }

    public String toString ()
    {
        return "" + durchmesser;
    }
}





Drei Fragen hätte ich dazu:

1) Wenn ich in der toString() - Methode nur return durchmesser mache bekomme ich einen Fehler (was auch logisch ist, da ich damit ja einen Integerwert zurückgeben würde). Ist es erlaubt hier einfach einen empty-String davorzusetzten?

2) Warum benötige ich in der main-Funktion noch einmal ein System.out.println() um die toString () - Methode auszugeben? Ich dachte immer, dass toString das gleich wie System.out.println() ist?

3) Woher weiß ich, wann die toString()-Funktion verwendet werden muss? Und wie genau funktioniert das mit dem Überschreiben?
eulerscheZahl

Du musst in Teller die Funktion toString() überschreiben.
Java_Beginner Object - Array

Meine Frage:
Hallo zusammen,

ich frage mich die ganze Zeit, warum ich bei meinem Code immer nur die Speicheradresse ausgegeben bekomme?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
package object_test;

public class Object_Test 
{
    public static void main(String[] args) 
    {
        Object [] obj = new Object [1];
        obj[0] = new Teller (4);
        System.out.println(obj[0]);
    }
}

class Teller
{
    private int durchmesser; 
    public Teller (int durchmesser)
    {
        this.durchmesser = durchmesser; 
    }
}


Meine Ideen:
Vielen Dank für Eure Hilfe.