Bene, creiamo il nostro oggetto PersonaCordiale e usiamolo:
Una volta che l’oggetto p
è stato creato, ricorda che il nome è Mario.
Ma cosa succede se vogliamo accedere direttamente al nome?
Nulla, non si può.
Ispezionare i contenuti di un oggetto
Le variabili di istanza sono nascoste dentro l’oggetto. Ma non sono così nascoste: puoi vederle ogni volta che ispezioni l’oggetto e ci sono altri modi per raggiungerle, ma Ruby ha un approccio molto orientati agli oggetti per accedere ai dati nascosti.
Quindi quanti metodi esistono per il l’oggetto PersonaCordiale?
Ci sono moltissimi metodi! Eppure ne avevamo definiti solo due: cosa sta
succedendo? Questi sono tutti i metodi per il nostro oggetto
PersonaCordiale, una lista completa che include anche quelli della
superclasse. Ma se volessimo vedere solo quelli che abbiamo creato noi?
Dobbiamo dirgli di non elencare il metodi della sua classe genitore
(super classe) passandogli come parametro false
.
Ah, ora va meglio! Vediamo a quali metodi risponde la nostra classe:
Bene, la nostra classe conosce saluta
e to_s
(che significa
convertire “qualcosa” in una stringa, un metodo definito di default per
ogni oggetto), ma non conosce name
.
Alterare una classe: non è mai troppo tardi!
E se volessimo vedere o cambiare il nome? Ruby fornisce un modo semplice per permetterci di accedere alle variabili di un oggetto.
In Ruby, puoi aprire una classe e modificarla. I cambiamenti vengono
aggiunti a tutti gli oggetti che crei e sempre disponibili per gli
oggetti esistenti della classe. Quindi creiamo un nuovo oggetto e
“giochiamo” con la sua proprietà nome
.
Usando attr_accessor
definiamo due nuovi metodi, nome
per ricevere
il valore e nome=
per settarlo.
Salutare tutti e tutto, L’AmicoDiTutti non trascura nessuno!
Questa PersonaCordiale può salutare solo una persona alla volta. Cosa succederebbe se avessimo un amico di tutti che può salutare il mondo, una persona o un intero elenco di persone?
Scriviamo questa volta in un file piuttosto che nell’inteprete interattivo di Ruby IRB.
Per chiudere IRB, scrivi “quit”, “exit” o semplicemnte premi Control-D.
Salva questo file come “ri20min.rb” ed eseguilo così “ruby ri20min.rb” Verrà mostrato qualcosa di simile:
Ciao Mondo!
Arrivederci Mondo. A presto!
Ciao Paolo!
Arrivederci Paolo. A presto!
Ciao Fabio!
Ciao Davide!
Ciao Raul!
Ciao Giorgia!
Ciao Federica!
Arrivederci Fabio, Davide, Raul, Giorgia, Federica. A presto!
...
...
Ci sono moltissime cose nuove in questo esempio che possono assumere un significato più profondo.