kimla Skrevet 12. september 2007 Del Skrevet 12. september 2007 Hei, har et spørsmål om hvordan man kan lage (hvis man kan) klasser som fungerer som String gjør. Med String kan vi f. eks. gjøre som følger: String s = "Et eller annet"; Hvordan kan jeg da lage en klasse som fungerer på samme måte, f. eks: MinKlasse mittObj = 4; (Hvis den da tar en int). Har dette med operator overloading å gjøre, som såvidt jeg vet, ikke eksisterer i Java? Lenke til kommentar
Dj_Offset Skrevet 12. september 2007 Del Skrevet 12. september 2007 Hei, har et spørsmål om hvordan man kan lage (hvis man kan) klasser som fungerer som String gjør. Med String kan vi f. eks. gjøre som følger: String s = "Et eller annet"; Hvordan kan jeg da lage en klasse som fungerer på samme måte, f. eks: MinKlasse mittObj = 4; (Hvis den da tar en int). Har dette med operator overloading å gjøre, som såvidt jeg vet, ikke eksisterer i Java? 9478556[/snapback] Nei, dette tilsvarer: String jalla = new String("Et eller annet"); String s = jalla; Dvs, "Et eller annet" er en string, det er derfor fint mulig å aksessere string metoder på denne, f.eks: System.out.println("Et eller annet".length()); Lenke til kommentar
kimla Skrevet 12. september 2007 Forfatter Del Skrevet 12. september 2007 Ok. Hvordan kan jeg da bruke samme greiene med f. eks. en Integer-klasse. MinInteger obj1 = new MinInteger(5); MinInteger obj2 = obj1; Dette går jo, men f. eks: MinInteger obj = 5; Går dette ann å få til på noen måte? Lenke til kommentar
emva Skrevet 12. september 2007 Del Skrevet 12. september 2007 (endret) et lite banalt eksempel er: public class Klasse1 { public Klasse1() { Klasse2 mittobj = new Klasse2(24); System.out.println(mittobj.toString()); } public static void main(String[] args) { new Klasse1(); } } andre klassen: public class Klasse2 { private int lasse; public Klasse2(int lasse) { this.lasse = lasse; } public String toString(){ return String.valueOf(lasse); } } håper dette forklarer mer enn forvirrer EDIT: (endret return i toString metoden) innser nå at det ikke forklarte såååå godt alikevell. kansje det er noe native i JVM`en Endret 12. september 2007 av emva Lenke til kommentar
kimla Skrevet 12. september 2007 Forfatter Del Skrevet 12. september 2007 innser nå at det ikke forklarte såååå godt alikevell. kansje det er noe native i JVM`en 9479962[/snapback] Er dette jeg lurer på også, hadde vært fint å få et endelig svar. Skal prøve å grave litt mer senere, men vet liksom ikke helt hva jeg skal søke på heller. Lenke til kommentar
Dj_Offset Skrevet 12. september 2007 Del Skrevet 12. september 2007 Ok. Hvordan kan jeg da bruke samme greiene med f. eks. en Integer-klasse. MinInteger obj1 = new MinInteger(5); MinInteger obj2 = obj1; Dette går jo, men f. eks: MinInteger obj = 5; Går dette ann å få til på noen måte? 9479732[/snapback] Nei, dette går ikke på samme fordi Java ikke støtter operator overloading. I Java's tilfelle er det tildels spesialbehandling av primitive typer og strenger som gjør at en kan få inntrykk av at dette skulle funke. En kan jo skrive: Integer i = 5; (det kunne man ikke før java 1.5 riktignok). Lenke til kommentar
kimla Skrevet 12. september 2007 Forfatter Del Skrevet 12. september 2007 Ok. Hvordan kan jeg da bruke samme greiene med f. eks. en Integer-klasse. MinInteger obj1 = new MinInteger(5); MinInteger obj2 = obj1; Dette går jo, men f. eks: MinInteger obj = 5; Går dette ann å få til på noen måte? 9479732[/snapback] Nei, dette går ikke på samme fordi Java ikke støtter operator overloading. I Java's tilfelle er det tildels spesialbehandling av primitive typer og strenger som gjør at en kan få inntrykk av at dette skulle funke. En kan jo skrive: Integer i = 5; (det kunne man ikke før java 1.5 riktignok). 9480099[/snapback] Ok, kjedelig at det ikke går, men godt å vite. Takker for svar. Lenke til kommentar
LostOblivion Skrevet 12. september 2007 Del Skrevet 12. september 2007 Sleng deg på i threaden min om overloading i Java. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå