Avatar billede alexander_j Nybegynder
22. oktober 2006 - 10:16 Der er 7 kommentarer og
1 løsning

class i class

Hej jeg er begyndt at lege lidt med class, men der er en enkelt ting jeg ikke helt kan få til at virke.

I en af mine class prøver jeg at gøre brug af en anden class - jeg har en class der hedder TKort, som definere enkelt korts egenskaber og jeg har en class som hedder TKortSpil der definerer hele kortspillets egenskaber. Inde i TKortSpil prøver jeg at lave et array med kortene:
for(var i:Number = 0 ; i < 52 ; i++){
  kortBunke[i]:TKort = new TKort(i);
}
Jeg har også prøvet bare at definere en enkelt variabel:
mitkort:TKort = new TKort(5);
Men ingenting kan jeg få til at virke.

Nogen der kan hjælpe?
Avatar billede mat Nybegynder
22. oktober 2006 - 12:30 #1
Hvordan ser din TKort klasse ud, og hvordan virker det ikke?
Avatar billede alexander_j Nybegynder
22. oktober 2006 - 13:52 #2
TKort-klassen virker fint. Faktisk kan man nærmere påstå, at det er TKortSpil klassen der ikke virker.
Forsimplet ser TKortSpil sådan her ud:
class TKortSpil {
  private var mytemp:Object;
  public function TKortSpil() {
      mytemp:TKort = new TKort(50);
  }
}

Mit problem er at
'mytemp:TKort = new TKort(50);'
virker fint når den oprettes fra en flash film, men ikke når den oprettes fra en anden klasse (TKortSpil).

Spørgsmålet er derfor om det er muligt og i så fald hvordan at have klasser i klasser.

Beklager mit sikkert ringe sprogbrug, men det er nyt for mig at skulle forklare mig om klasser og objekter osv.

I forsimplet udgave ser Tkort forøvrigt sådan her ud:
class TKort {
  private var kortNummer:Number;
  public function TKort(saetKortNummer:Number) {
      kortNummer = saetKortNummer;
  }

  public function HentKortNummer() {
      return kortNummer;
  }
}
Avatar billede alexander_j Nybegynder
22. oktober 2006 - 13:56 #3
Fejlmeddelelsen når jeg tjekker min klasse TKortSpil lyder forøvrigt:
**Error** C:\minsti\TKortSpil.as: Line 4: Syntax error.
mytemp:TKort = new TKort(50);
Avatar billede alexander_j Nybegynder
22. oktober 2006 - 13:57 #4
Fik måske løst problemet:
class TKortSpil {
  private var mytemp:TKort;
  public function TKortSpil() {
      mytemp = new TKort(50);
  }
}
Avatar billede mat Nybegynder
22. oktober 2006 - 14:00 #5
Tjah den bed jeg osse mærke i. Du skal kun typedeklarere når du deklarerer din variabel.

(Derudover ville en "klasse i klasse" være en klassedefinition i en klasse, det du har er et objekt i en klasse, og det er i høj grad muligt ;)

mvh mat
Avatar billede alexander_j Nybegynder
22. oktober 2006 - 14:27 #6
Jep mit ringe sprogbrug :-D

Hvordan er det nu? Objekter er medlemmer af klasser, så derfor har jeg nu en klasse (TKortSpil) hvor jeg definere diverse objekter(mytemp) som er medlem af en anden klasse (TKort) :-D suk ... intet under at jeg ikke tidligere forstod det vrøvl her.

Men smart er det jo når man først finder rundt i det og får det til at virke - og som skolelærer kommer man jo ikke uden om klasser ;-)

Kom med et svar mat (som står for matematik, Mathias, Mathi, Mathilde, Mathisen eller noget i et skakspil?)
Avatar billede mat Nybegynder
22. oktober 2006 - 14:37 #7
Nah ikke helt, objekter er instancer af klasser. En klasse er den "abstrakte" beskrivelse af et objekt, objektet er konkretiseringen af det abstrakte.

Ligesom "bil" er et begreb men ikke nødvendigvis en bestemt bil (en klasse), mens den audi på gaden med nummerpladen "blabla" er et konkret objekt.

Men ja, ofte er medlemmer af en klasse objekter.

Du løste det jo selv så jeg vil ikke have point :)
Avatar billede alexander_j Nybegynder
22. oktober 2006 - 15:00 #8
Oki, så forstår skolelæreren det :-) næsten.

Objektet er altså bestemt og klassen er ubestemt
Variablen er ental og arrayet er flertal
Variablen er navneord, funktionen er udsagnsord og parametrene er tillægsord.

Og så er vi allesammen lidt mere forvirrede ;-)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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