Modificadores de acesso no Ruby

Existem diversos conceitos na programação orientada a objetos e os modificadores de acesso são um deles. Basicamente, estamos falando destes: public, protected e private. Para alguns, o uso deles causam certa confusão.


Por padrão, todos os métodos de uma classe são públicos. Isto quer dizer que os métodos podem ser chamados em qualquer escopo da sua aplicação.

Quando definimos um método como privado (private), assume-se que este método será acessível apenas ao escopo local da classe em que foi definido. Porém, este mesmo método poderá ser usado em uma outra classe por herança. Veja um exemplo:

No entanto, o método Apartment#price não pertence ao self de Kitchen, ou seja, não pertence ao escopo dele. Outro exemplo:

Um método privado pertence apenas à classe em que foi definido. Este conceito é um pouco diferente do modificador protected. Qualquer método protegido definido em uma classe pertence, além dela mesma, a todas as subclasses da classe em questão. Veja um exemplo:

Um método protegido (protected) pode ser chamado através de uma instância, dentro da própria classe ou de suas subclasses. Outro exemplo:

Like what you read? Give Rogério Zambon a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.