Tipos de Modificadores:
- public: Permite o acesso de membros de uma classe por qualquer código do programa, incluindo métodos de outras classes.
- private: Restringe o acesso de membros para dentro da própria classe, impedindo métodos de outras classes de acessá-los diretamente.
- protected: Usado em herança, será abordado no Capítulo 8.
- Acesso padrão: Se nenhum modificador for usado, o acesso é igual ao public, exceto em casos que envolvem pacotes.
Exemplos de Modificadores:
Exemplos de como usar public e private na declaração de membros:
- public String errMsg;
- private accountBalance bal;
- private boolean isError(byte status) { // ... }
Demonstração Prática:
Controle de Acesso em uma Classe:
- Membros privados, como alpha em MyClass, só podem ser acessados por métodos da própria classe.
- Acesso a membros privados por métodos públicos através de métodos acessadores (getAlpha() e setAlpha()).
- Tentativas de acesso direto a membros privados de outra classe resultarão em erro de compilação.
class MyClass {
private int alpha; // acesso privado
public int beta; // acesso público
int gamma; // acesso padrão (equivalente a public neste contexto)
// Métodos para acessar alpha
void setAlpha(int a) {
alpha = a;
}
int getAlpha() {
return alpha;
}
}
Exemplo de Uso: Classe AccessDemo.java
Resultado:
- O acesso ao membro privado alpha só pode ser feito através dos métodos públicos setAlpha() e getAlpha().
- Acesso direto a alpha fora da classe MyClass é proibido, resultando em erro de compilação.
Exemplo: FailSoftArray:
- Implementa um array "resistente a falhas", onde o array é encapsulado como membro privado, acessado apenas por métodos públicos.
- Encapsulamento: Protege o array de acessos fora dos limites, prevenindo exceções de tempo de execução.
- Membros Privados: a, errval, e indexOK() são privados, protegendo a integridade do array.
- Membro Público: length é público, permitindo a consulta do tamanho do array, similar à implementação de arrays padrão em Java.
- Metodos Públicos: put() e get() são usados para armazenar e recuperar valores do array, controlando o acesso de forma segura.
Conclusão:
O controle de acesso é fundamental para uma programação orientada a objetos bem-sucedida, especialmente ao lidar com herança e garantir a integridade dos dados.
Resultado:
O array "resistente a falhas" evita erros de tempo de execução ao tentar acessar índices fora dos limites.
Acesso aos elementos do array é feito de forma segura através dos métodos públicos get() e put(), com verificação de limite.
O programa exibe falhas silenciosas e depois trata as falhas explicitamente, mostrando quando os índices estão fora dos limites.
Esses exemplos ilustram como os modificadores de acesso em Java (public, private, e acesso padrão) são aplicados para controlar o acesso a membros de uma classe e garantir a integridade e segurança dos dados.
Top comments (0)