Gå til innhold

String obj = "Data"; Hvorfor funker dette?


Anbefalte innlegg

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
Videoannonse
Annonse
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

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 :whistle:

EDIT:

(endret return i toString metoden)

 

innser nå at det ikke forklarte såååå godt alikevell.

 

kansje det er noe native i JVM`en

Endret av emva
Lenke til kommentar
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
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
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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...