Ciao.
Per favore mi potete confermare che le seguenti cose che ho capito sul
controllo dell’accesso ai metodi siano vere:
1 - Se non dichiarato altrimenti ogni metodo creato è pubblico;
2 - Quando definisco un metodo di fatto lo definisco publico, è in un
secondo momento che informo Ruby che il metodo è privato o protetto
tramite le seguenti istruzioni: private :nome_metodo o protected
:nome_metodo (:nome_metodo è il simbolo/etichetta relativa al metodo).
Ho capito bene?
Ciao e grazie.
KioSirio
class MyClass
def a
end
protected
def b
end
private
def c
end
end
Tutti i metodi definiti
dopo la keyword ‘protected’ sono protetti, lo stesso
accade per
‘private’.
Tra l’altro, che differenza c’è tra “private” e “protected” ?
Walter
Puoi anche fare così
class MyClass
def a
end
protected
def b
end
private
def c
end
end
Tutti i metodi definiti dopo la keyword ‘protected’ sono protetti, lo
stesso
accade per ‘private’.
Luca
Tra l’altro, che differenza c’� tra “private” e “protected” ?
I metodi protected possono essere chiamati da altre istanze dello stesso
oggetto.
Esempio:
class MyClass
def uguale?(other)
self.a == other.a
end
def uguale_due?(other)
self.b == other.b
end
protected
def a
…
end
private
def b
…
end
end
foo1 = MyClass.new
foo2 = MyClass.new
foo1.uguale? foo2 # true o false
foo1.uguale_due? foo2 # errore! foo1 non può chiamare un metodo private
di foo2!