19. marts 2003 - 18:40Der er
15 kommentarer og 1 løsning
Attribut tilgang - oplæg til lidt diskussion
Hvis man nu har en klasse "Run", hvori main metoden ligger og følgende sker: 1)persistent data indlæses i diverse lister. 2) Gui gui = new gui(liste1, liste2,....)
i gui sker følgende: listerne modtages GuiInput guiInput = new GuiInput ();
Altså gui er den klasse man arbejder i og guiInput skal kunne tilføje data til listerne i gui klassen. Hvordan gør man det lettest? Kan man sende hukommelse adressen på listerne med ved oprettelse af GuiInput (det er så ikke så objekt orienteret en tankegang) eller bør man i guiInput lave en metode som returnerer en modificeret liste, eller kan man sende det "this" (guiobjekt) med og direkte modificere det?
I gui bliver alt data altså vist og guiInput kunne fx være en JDialog, som bruges til tilføjelse af data.
Men når man sender listerne med over i constructoren så kan man jo kun "nå dem" i selve constructoren.
Man vil jo formentlig have noget i denne stil:
import java.io.* import java.util.* impo.....
ArrayList list1; ArrayList list2;
public GuiInput(list1, list2) { this.list1=list1; this.list2=list2; } ... Man laver jo denne this for at man kan tilgå listerne i resten af klassen. Men det er jo ikke de lister der er modtaget man retter i så, men lister lokalt i klassen, eller tager jeg helt fejl?
this.list1=list1; Adressen til objektet "this.list1" sættes lig med adressen til "list1" objektet - altså peger "this.list1" på "list1!. Dvs. du retter direkte i den oprindelige liste.
Okey så er det jo herre let!:o) Lækkert at jeg først har fundet ud af det nu - not... Nå, men så fik jeg da noget ret basalt på plads :o) Tak for hjælpen.
Lige for at få noget helt på plads så.... this refererer den aktuelle klasse så (GuiInput objektet), right?
Hvordan skal vi dele pointene.... Arne har jo svaret mest og soreno og disky knapt så meget... Der er godt nok ikke så mange point at slås om, men det skal da være retfærdigt, så hvis soreno lige smider et svar også...
De gange jeg har lavet noget gui hvor jeg skulle tilgå en datamodel har jeg lavet en "mother-of-all-classes" klasse som jeg sender via en reference i konstruktøren i swing klasserne.
Vil det sige at man altid arbejder med referencer i java? For jeg kan da regne ud at det også er det soreno gør i sit seneste svar så. Hvad så hvis man har nogle variabler internt i klasse: int a=5; int b=a; int c=b; De peger vel alle bare på samme adresse så...
Og med hensyn til point, så tror jeg bare at vi siger, at det var diskys heldige dag.
Synes godt om
Ny brugerNybegynder
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.