Dúvida sobre métodos de classe

31/05/2017

0

Oi gente, uma dúvida sobre orientação a objetos. Os métodos das minhas classes devem ser públicos ou privados?

Os atributos deixei sempre como privados, exceto nos atributos das superclasses.

Porém na visibilidade dos métodos não sei se posso declará-los como privados e aproveitar isso.

Alguém pode me ajudar?
Larissa Aguiar

Larissa Aguiar

Responder

Post mais votado

31/05/2017

Bom dia Larissa!

O que vai dizer se um método vai ser público ou privado é a utilização dele. Um exemplo, uma classe Boleto tem um método imprimirCodigoDeBarras(). Este método tem que ser público para pode ser chamado por quem vai utilizar um objeto desta classe. Só que na composição do código de barras existe o digito verificador. Logo eu vou ter um método calcularDigitoVerificador(). Este método só vai ser utilizado dentro do método imprimirCodigoDeBarras(), logo ele não precisa ser público. Deu para entender?

Se a resposta for útil não esqueça de dar um like!

Daniel Araújo

Daniel Araújo
Responder

Mais Posts

05/06/2017

Larissa Aguiar

Então no caso, os métodos, desde que usados somente dentro da própria classe, podem ser privados? é isso?

E se forem usados em outros lugares que não sejam a classe, aí há a necessidade de serem públicos.

Bom se for isso entendi sim!

Obrigada :)
Responder

05/06/2017

Daniel Araújo

Isso mesmo!
Responder

12/06/2017

Ivan Santos

Acrescentando à reposta, essas são as características das visibilidades public, private e protected:

public - acessível publicamente. É comum ter métodos public, mas não é recomendado ter atributos public;
private - acessível somente a membros da própria classe;
protected - acessível a membros da própria classe e subclasses;

há ainda a visibilidade package, quando a visibilidade não é especificada, ela se torna public porém apenas para membros do mesmo package;
Responder

13/06/2017

Diego Silva

Excelente complementação Ivan!

Com certeza o entendimento dos modificadores de acesso ajudam a entender essa situação com mais clareza!
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar