sexta-feira, 5 de agosto de 2011

Java - Encapsulamento

Acesso aos membros:

objeto.membro
objeto.membro(args)

Controlando acesso aos membros:
  • private: só a própria classe
  • public: todas acessam
  • package-private (sem modificador): só as do mesmo pacote
  • protected: só as subclasses (herdeiras) e as do mesmo pacote
Para classes, apenas as duas primeiras são permitidas.
Resumindo:

Modifier Class Package Subclass World
public Y Y Y Y
protected Y Y Y N
no modifier Y Y N N
private Y N N N

Dica: use o modificador mais restritivo que puder nas suas definições. Use public apenas para constantes.  Relemebrando, constantes são static e final; seus nomes são escritos em MAIUSCULAS_COM_UNDERSCORE.

final: não pode ser alterado.
No caso de métodos, não pode ser redefinido por subclasses.

static: compartilhado entre todos os objetos da classe.
No caso de métodos, são os únicos que podem acessar campos estáticos diretamente.  Acesso aos membros estáticos:

Classe.membro
Classe.membro(args)

Classes aninhadas: geralmente, as classes são declaradas no nível mais externo (top level).  No entanto, classes podem ser declaradas como membros de outras classes.  Estas classes têm acesso a todos os membros da classe onde estão, inclusive os privados.

Nenhum comentário:

Postar um comentário