Gå til innhold

Korleis få ein deklarert global variabel.....


Anbefalte innlegg

Videoannonse
Annonse
Gjest Sletet+adslkfjv

her kommer et lite eksempel

import java.util.HashMap;

public class hashtest {

static HashMap person = new HashMap();

public static void main(String[] args) {
 
 person.put(0, "a");
 hashinput inp =  new hashinput();

}

}

det var den første fila, og så kommer den andre her :)

public class hashinput {
hashinput(){
System.out.println(hashtest.person.get(0));
}
}

Lenke til kommentar

Det vanligste er nok å bruke metoder for å få tilgang til data i andre klasser, ofte kalt get/set-metoder. Du kan da hente ut en kopi av dataene/objektet (metode som returnerer dataene/objektet) slik at du kan jobbe med det der det passer deg, eller du kan jobbe mot metoder i klassen som har dataene.

 

Håper jeg forstod spørsmålet riktig nå :)

Lenke til kommentar

Objekter i java blir sendt by reference i utgangspunktet, så hvis et objekt returnerer et objekt til en annen klasse, som endrer på innholdet av objektet så vil dataene være endret inne i den første klassen og, det er nemlig samme objekt.

 

Dette stemmer logisk nok ikke hvis objektet er klonet før det blir returnert av get metoden, men dette er noe man vanligvis ikke gjør.

Lenke til kommentar

Nå går ting her litt over det eg har kontroll over.

Det dykk seier er at eg må klone HashMappet og senda det over til den andre klassen?

 

Eksempelet til logindude var og litt tvilsomt da han gjer denna handlinga utan å kjøre ein void metode.

 

Planen min er at eg har ein eigen klasse som leser frå fil inn til hashmappet og ein anna klasse der eg skriver ut til fil frå hashmappet og ein klasse der eg manipulerer data i terminal vindauget.

 

Programmet blei så stort at eg valgte å lage eigne klasser for detta så det blei meir oversiktlig. Burde eg heller ta alt i ein klasse?

Lenke til kommentar

Hei, du trenger ikke noe global variabel for å få gjort dette...

 

La oss si at du har tre klasser, FilLeser, FilSkriver og FilManipulerer

 

programmet ditt burde starte i FilManipulerer

Der oppretter du FilLeser

som har en public metode som ser slik ut:

public HashMap get() {

...

}

 

 

og FilSkriver som har en public metode som ser slik ut:

public void set(HashMap hmap) {

...

}

 

Det er kanskje greit å vite at du kan opprette objekter av dine egne klasser på akkurat samme måte som ferdiglagde, f.eks

 

FilLeser filLeser = new FilLeser();

 

Her hadde det vært logisk å lage en constructor som tok inn et filnavn, så du kunne skrevet noe sånt som:

 

FilLeser filLeser = new FilLeser("filnavnpåfiljegvillese.txt");

Lenke til kommentar
Objekter i java blir sendt by reference i utgangspunktet, så hvis et objekt returnerer et objekt til en annen klasse, som endrer på innholdet av objektet så vil dataene være endret inne i den første klassen og, det er nemlig samme objekt.

 

Dette stemmer logisk nok ikke hvis objektet er klonet før det blir returnert av get metoden, men dette er noe man vanligvis ikke gjør.

5228590[/snapback]

Uff da, den var bad av meg. Takk for rettelsen. Jeg var klar over det, men tenkte litt feil :blush:

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...