01
od 02
Instantacija i metoda inicijalizacije

Kada u Rubyu definirate klasu, Ruby će dodijeliti novi objekt klase konstanta imena klase. Na primjer, ako želite reći osoba iz razreda; kraj, ovo je otprilike ekvivalent Osoba = Razred.Novo. Ovaj je predmet klase klasa, i sadrži brojne metode korisne za izradu instanci kopija tih instanci.
02
od 02
Izrada instanci
Da biste napravili novu instancu klase, nazovite je novi metoda. Prema zadanim postavkama ovo će dodijeliti potrebnu memoriju za klasu i vratiti referencu na novi objekt. Dakle, ako ste napravili novu instancu Osoba klase, ti bi pozvao Person.new.
Iako se u početku to čini pomalo unatrag, nema novi ključna riječ u Ruby ili bilo kojoj posebnoj sintaksi. Novi se objekti stvaraju normalnom metodom koja, sve što je rečeno i učinjeno, čini relativno jednostavnim stvarima.
Pokretanje instanci
Prazan predmet nije baš uzbudljiv. Da biste započeli koristiti svoj objekt, on se prvo mora inicijalizirati (pod pretpostavkom da ga ima
varijable instance za to je potrebno inicijaliziranje). To se provodi putem Pokretanje metoda. Ruby će proslijediti sve vaše argumente SomeClass.new na na Pokretanje na novom objektu. Zatim možete koristiti normalne dodjele varijabli i metode za inicijalizaciju stanja objekta. U ovom primjeru a Osoba klasa je predstavljena čiji Pokretanje će uzeti argument imena i dobi i dodijeliti ih varijablama instance.klasa Osoba def inicijalizirati (ime, dob) @name, @age = ime, dob kraj end bob = Person.new ('Bob', 34)
Ovu priliku možete koristiti i za prikupljanje svih potrebnih resursa. Otvorena mreža utičnice, otvaranje datoteka, čitanje svih potrebnih podataka itd. Jedina upozorenje je da ljudi uglavnom ne očekuju Pokretanje metode za neuspjeh. Obavezno dokumentirajte sve eventualne neuspjehe Pokretanje metode temeljito.
Usmjeravanje objekata
U Ruby-u obično ne uništavate predmete. Ako dolazite s C ++ ili nekog drugog jezika bez sakupljača smeća, to bi moglo izgledati čudno. Ali u Rubyju (i većini drugih jezika sakupljenih smećem) ne uništavate predmete, jednostavno se prestanete pozivati na njega. U sljedećem ciklusu odvoza smeća svaki će se predmet bez ičega na njega automatski uništiti. Postoje neke greške s kružnim referencama, ali općenito to djeluje besprijekorno i čak vam i ne treba "destruktor".
Ako se pitate o resursima, ne brinite o tome. Kad se objekt koji drži resurs uništi, resurs će se osloboditi. Otvorene datoteke i mrežne veze bit će zatvorene, memorija razmještena itd. Samo ako dodijelite bilo kakve resurse u proširenju C, doista ćete se morati brinuti oko razmjene resursa. Iako nema garancije kada će se skupljati smeće. Kako bi se raspoložili resursi u na vrijeme pokušajte ih ručno osloboditi.
Izrada kopija predmeta
Ruby se daje putem reference. Ako proslijedite referencu na objekt a način, a ta metoda naziva metodu koja mijenja stanje tog objekta, mogu se dogoditi nenamjerne posljedice. Nadalje, metode se tada mogu spremiti referencu na objekt da se modificira u mnogo kasnijem vremenu, uzrokujući odložen efekt za bug. Da bi to izbjegao, Ruby nudi neke metode dupliciranja objekata.
Da biste duplicirali bilo koji objekt, jednostavno pozovite some_object.dup metoda. Novi će objekt biti dodijeljen i kopirati će se sve varijable instance instance. Međutim, ono što je trebalo izbjeći: kopiranje varijabli primjerka: to je ono što se naziva "plitkom kopijom". Ako trebali ste držati datoteku u instanci varijable, oba se duplicirana objekta sada odnose na istu datoteka.
Samo imajte na umu da su kopije plitke kopije prije upotrebe DUP metoda. Pogledajte članak Izrada dubokih kopija u Rubyju za više informacija.