Avatar billede gladmhensk Nybegynder
08. februar 2004 - 20:30 Der er 16 kommentarer og
1 løsning

Objekter i vector

hej

Jeg har en vector med et enkelt objekt i (udvider det self. bagefter). Når jeg udskriver objektet med v.get(0); kommer den i hexidecimal form efter @. Hvordan undgår jeg det ? kan jeg bruge StringBuffer ?
Avatar billede erikjacobsen Ekspert
08. februar 2004 - 20:33 #1
Du kan fx. lave en toStrind metode i din klasse.
Avatar billede erikjacobsen Ekspert
08. februar 2004 - 20:34 #2
Og det vil så nok ikke gøre nogen forskel med mindre du kalder den: toString
Avatar billede gladmhensk Nybegynder
08. februar 2004 - 20:34 #3
Nææh, sry kom til at blande det sammen med noget andet jeg havde prøvet...den kommer med en fejl..


import java.util.*;
public class Liste {
int tal = 5;
           

public static void main(String[] args){
Vector v = new Vector();
Liste obj1 = new Liste();
    System.out.println(v.get(0));
}
}



Tag jer ikke af klasse navn etc.
Avatar billede gladmhensk Nybegynder
08. februar 2004 - 20:36 #4
Det løv....se bort fra min sidste post !!!!!!!!!
VIGTIGT ! havde glemt ADD

ser lige hvad i har foreslået...
Avatar billede gladmhensk Nybegynder
08. februar 2004 - 20:37 #5
Kan jeg godt lave en int i et objekt til en string ? ja ik ?
Avatar billede gladmhensk Nybegynder
08. februar 2004 - 20:40 #6
Jeg har fået den til at virke...TAK !
jeg forstår bare ikke hvordan at toString metoden kan blive udført uden kald...sker det automatisk ved oprettelse af objekter ?
Avatar billede arne_v Ekspert
08. februar 2004 - 20:41 #7
Når du skriver et objekt ud kalder Java toString metoden.

Den der kedelige adresse er Object klassens toString som alle klasser arver
medmindre de overrider den.
Avatar billede erikjacobsen Ekspert
08. februar 2004 - 20:42 #8
Nej, det sker automatisk hvis du bruger et objekt i en sammenhæng hvor der
forventes en streng. Det er ren magi!
Avatar billede gladmhensk Nybegynder
08. februar 2004 - 20:43 #9
Takker arne...sker det med alle metoder i Object klassen ?
Avatar billede gladmhensk Nybegynder
08. februar 2004 - 20:46 #10
PS. I må godt lige se om jeg kan forbedre den...bare kort....point er såen set jeres, så lav også et svar :)

public class Liste {
int tal = 5;
String udskriv;

public String toString(){
    udskriv = Integer.toString(tal);
    return udskriv;           
}


public static void main(String[] args){
Vector v = new Vector();
Liste obj1 = new Liste();
Liste obj2 = new Liste();
v.add(obj1);
v.add(obj2);
for(int i = 0; i < v.size(); i++)
    System.out.println(v.get(i));
}
}
Avatar billede arne_v Ekspert
08. februar 2004 - 20:46 #11
Alle klasser arver alle metoder fra Object.

toString som udskriver adresse

equals som svarer til ==

som man ofte vil override (husk også at override hashCode hvis du overrider equals)

og nogen som man sjældent vil override: wait, notify etc..
Avatar billede arne_v Ekspert
08. februar 2004 - 20:47 #12
String udskriv;

public String toString(){
    udskriv = Integer.toString(tal);
    return udskriv;         
}

->

//slet: String udskriv;

public String toString(){
    return Integer.toString(tal);
}
Avatar billede gladmhensk Nybegynder
08. februar 2004 - 20:47 #13
okay...har alle de andre i min bog...læg venligst et svar...
Avatar billede nido2003 Nybegynder
08. februar 2004 - 21:31 #14
Har du haft om arv og polymorfi endnu, for så
List v = new Vector();
Avatar billede gladmhensk Nybegynder
08. februar 2004 - 21:43 #15
ja...ser bare ingen fordel i at bruge det i dette eksempel...ellers så må du gerne råve højt :)
Avatar billede nido2003 Nybegynder
08. februar 2004 - 22:03 #16
Generel god programmeringsskik, til evt. senere vedligeholdelse, at holde objekter på en interface reference. Lad det blive en vane.
Avatar billede arne_v Ekspert
06. marts 2004 - 16:07 #17
svar
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