[Tuesday with Ruby] Controle de acesso – Métodos

datePosted on 07:03, outubro 20th, 2009 by Carlos Eugênio

E ai Pessoal , depois da RailsSummit 2009 resolvi dar uma revisão em meus conhecimentos de Ruby e nada melhor que seguir o tutorial do Eustáquio Rangel http://www.eustaquiorangel.com/downloads/tutorialruby.pdf que apesar de ser de 2005 é excelente material de estudo.

Tuesday é dia do Ruby em Foco :
ruby copy

Seguem algumas classes para testar métodos , protected , private e public .

Classe usando protected

class TesteProtegido
def diga_oi
"oi!"
end
def cumprimente(outra)
puts "Eu cumprimento:" +diga_oi
puts "A outra classe cumprimenta: "+outra.diga_oi
end
protected :diga_oi
end
class TesteProtegidoFilha < TesteProtegido
def novo_oi
puts "Filha cumprimenta: "+diga_oi
end
end
class ClasseEstranha
def cumprimente(outra)
puts "Classe estranha acessando: "+outra.diga_oi
end
end
pro1 = TesteProtegido::new
pro2 = TesteProtegido::new
filha = TesteProtegidoFilha::new
estr = ClasseEstranha::new
pro1.cumprimente(pro2)
filha.novo_oi
estr.cumprimente(pro1)

Classe usando private


class TestePrivado
def diga_oi
"oi!"
end
def cumprimente(outra)
puts "Eu cumprimento:" +diga_oi
puts "A outra classe cumprimenta: "+outra.diga_oi
end
private :diga_oi
end
class TestePrivadoFilha < TestePrivado
def novo_oi
puts "Filha cumprimenta: "+diga_oi
end
end
class ClasseEstranha
def cumprimente(outra)
puts "Classe estranha acessando: "+outra.diga_oi
end
end
priv1 = TestePrivado::new
priv2 = TestePrivado::new
filha = TestePrivadoFilha::new
estr = ClasseEstranha::new
priv1.cumprimente(priv2)
filha.novo_oi
estr.cumprimente(priv1)

Classe usando public

class TestePublico
def diga_oi
"oi!"
end
def cumprimente(outra)
puts "Eu cumprimento:" +diga_oi
puts "A outra classe cumprimenta: "+outra.diga_oi
end
public :diga_oi
end
class TestePublicoFilha < TestePublico
def novo_oi
puts "Filha cumprimenta: "+diga_oi
end
end
class ClasseEstranha
def cumprimente(outra)
puts "Classe estranha acessando: "+outra.diga_oi
end
end
pub1 = TestePublico::new
pub2 = TestePublico::new
filha = TestePublicoFilha::new
estr = ClasseEstranha::new
pub1.cumprimente(pub2)
filha.novo_oi
estr.cumprimente(pub1)

categoryPosted in Ruby | printPrint

Leave a Reply

Name: (required)
Email: (required) (will not be published)
Website:
Comment:

Twitter Users
Enter your personal information in the form or sign in with your Twitter account by clicking the button below.

Spam Protection by WP-SpamFree