Avatar billede Slettet bruger
04. august 2009 - 22:58 Der er 5 kommentarer og
1 løsning

get og set - hvad gør de?

Hej alle.

Jeg har kigget på information omkring get og set i Actionscript - men jeg forstår simpelthen ikke, hvad de gør.

Her er Flash's eget eksempel:

package {
    class User {
        private var userAge:Number;
       
        public function get age():Number {
            return userAge;
        }
       
        public function set age(x:Number):void {
            userAge = x;   
        }
    }
}

Enter the following code in your script:
var myUser:User = new User();
myUser.age = 25;
trace(myUser.age); // output: 25


Kan nogen forklare mig, hvilken funktion de har?
Avatar billede keysersoze Ekspert
04. august 2009 - 23:07 #1
Jeg tror det er lettest at starte fra toppen;

- User er dit objekt.
- objektet har én property (beskrivende egenskab) nemlig age.
- Egenskaben er frit tilgængelig både til at skrive en ny værdi til og hente værdien fra for dem der bruger objektet og det er det get og set gør. Hvis du fjerner set er egenskaben kun læsbar og hvis du kun har get kan du kun skrive til den.

Derfor;

"myUser.age = 25" benytter "set" og "myUser.age" benytter "get".
Avatar billede arne_v Ekspert
04. august 2009 - 23:09 #2
De encapsulater det private field, således at du kan ligge diverse check ind ved tilgangen eller ændre data typen for field - iden at der skal rettes i den kode som bruger klassen.

Meget fundamental egenskab i OOP.
Avatar billede Slettet bruger
05. august 2009 - 00:22 #3
#1 - jeg kan godt forstå din beskrivelse, men ikke anvendeligheden, hvis en "get" er ledsaget af en "set". Vil myUser.userAge = 25 ikke ha' samme effekt i ovenstående kodeeksempel? Eller er det fordi variablen userAge er erklæret private?

#2 Det med validering giver mening - men som nr. 1 giver anvendeligheden desværre stadig ikke mening for mig. En validering kan vel lige så godt finde sted i en alm. metode som f.eks. dette kald:

if (Boolean(myUser.validering(25)) {
  // Du er gammel nok
} else osv.


En anden ting er at Flash-eksemplet giver flere compilerfejl...
Avatar billede arne_v Ekspert
05. august 2009 - 14:25 #4
Finessen er at validerings koden kan ligges ind i set uden at der skal aendres i den kode som kalder set.
Avatar billede arne_v Ekspert
13. september 2009 - 03:39 #5
anders ?
Avatar billede keysersoze Ekspert
29. december 2009 - 11:14 #6
lukketid?
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