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

Tipa objekti un instances

Kad rakstāt klases nosaukumu, piemēram, Dog, jūs atsaucaties uz klases tipa objektu. Tipa objekts pārstāv pašu tipu, nevis kādu konkrētu šī tipa objektu. Instance, kas radīta ar new, ir īsts objekts.

Raku abus spēj atšķirt. Metode defined tipa objektam atgriež False, bet instancei True:

class Dog {
}

say Dog.defined;     # False
say Dog.new.defined; # True

Tipa objekts tiek uzskatīts par nedefinētu, jo tas nesatur nekādus konkrētus datus — tas ir tikai tipa apraksts. Instance ir definēta: tā ir īsts objekts.

Abi ziņo vienu un to pašu tipu caur WHAT, ar ko iepazināties sadaļā par konteineriem:

class Dog {
}

say Dog.WHAT;     # (Dog)
say Dog.new.WHAT; # (Dog)

Iekavas ap (Dog) ir Raku veids, kā parādīt tipu. Tātad Dog un Dog.new dala tipu Dog; atšķirība ir tāda, ka viens ir pats tips, bet otrs — šī tipa objekts.

Prakse

Jūs gaida 1 viktorīna par šī temata saturu.

Kursa navigācija

Klases   |   Viktorīna — Klases


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