Raku kurss / Objekti, ievade/izvade un izņēmumi / Klases un objekti / Metodes

Privāti atribūti

Sadaļā par atribūtiem katrs atribūts tika deklarēts ar $., kas izveido publisku piekļuves metodi. Atribūts, kas deklarēts ar $!, savukārt ir privāts: tam nav piekļuves metodes, un no ārpuses to nevar redzēt. Tas ir sasniedzams tikai klases pašas metodēs, kur uz to atsaucaties kā $!name.

class Safe {
    has $!code = 4321;

    method unlocks($attempt) {
        return $attempt == $!code;
    }
}

my $safe = Safe.new;
say $safe.unlocks(4321); # True
say $safe.unlocks(1111); # False

Slepenais $!code glabājas objekta iekšienē, taču nekad netiek atklāts: piekļuves metodes .code nav, tāpēc vienīgais veids, kā ar to mijiedarboties, ir metode unlocks, ko klase izvēlas piedāvāt. Mēģinājums nolasīt $safe.code vai $safe!code vienkārši neizdodas.

Privāti atribūti noder iekšējām detaļām, kurām pārējā programma nedrīkst pieskarties tieši.

Kursa navigācija

Metodes   |   Metodes ar parametriem


💪 Vai arī dodieties tieši uz šīs sadaļas vingrinājumiem.