Avatar billede user300 Nybegynder
06. januar 2002 - 20:55 Der er 2 kommentarer og
1 løsning

String toString

Jeg har to klasser score & scoreList. Under min scoreList skla der være en metode (public string to String)

Hvad skal en string toString retunere ?? Hvorfra og hvorfor?

---Dette er fra scoreList
public String toString()
    {
        return \"?\";
    }


---dette er fra den anden klasse score

public String toString()
    {    return navn + \"\\t\" + value;
    }
Avatar billede erikjacobsen Ekspert
06. januar 2002 - 21:44 #1
Der er ingen regler om hvad toString skal aflevere, udover at det jo skal
være en streng.

Det bør imidlertid være noget, der er en tekstuel repræsentation af det
tilhørende objekt. Har du to attributter, navn og value, som i dit eksempel,
kan du aflevere de to i samme String.

Har du en liste af objekter, kan du aflevere alle objekterne, adskilt af
komma. Bemærk at du her kun behøver at lave en toString på objekterne,
for den har du naturligvis lavet fornufigt.

Men på en liste kan du også vælge blot at aflevere størrelsen, f.eks.
\"scorelisten har 17 elementer\".

Det man typisk bruger toString til er til testudskrifter, og så bruger Java
det selv til fejludskifter.

Og man behøver slet ikke lave en toString() i en klasse. Har du ikke lavet
én, finder Java selv på én, men den tekst der kommer ud af det kan man
normalt ikke bruge til ret meget.
Avatar billede user300 Nybegynder
06. januar 2002 - 22:31 #2
Alletiders.....Nu er jeg mere med, men et sidste spørgsmål !!

I min anden klasse skal jeg retunere \"navn\" & \"nummer\"...men hvordan skrives dette i scoreList klassen??

---Dette er fra scoreList
public String toString()
    {
        return \"?\";
    }

---Dette er fra score klassen
public class Score
{    private int value;
    private String navn;

    public Score(int value, String navn)
    {    this.value = value;
        this.navn  = navn;
    }

    public int value()
    {    return value;
    }
   
    public String toString()
    {    return navn + \"\\t\" + value;
    }   
Avatar billede erikjacobsen Ekspert
06. januar 2002 - 22:39 #3
Hvis din scoreList et lavet som et array, a, kan du bare gøre

  public String toString() {
    String s=\"\";
    for (int i=0;i<max;i++) {
      s=s+a[i].toString()+\",\";
    }
    return s;
  }

ok, der kommer et \",\" for meget til sidst. Og det er mere effektivt med
StringBuffer - men du ser sikkert princippet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester