Modificadores de
acesso e atributos de classe
Nesta aula,
o professor iniciou com o assunto relacionado a Modificadores de Acesso
e Atributos de Classe, confesso que o assunto abordado já havia sido
instruído e um razoável conhecimento já possuía. Mas nunca é tarde para
relembrar alguns detalhes deste assunto que é muito importante. Tentarei
explicar conforme estudei pela internet e explicações do professor!
Pois bem, foi uma aula com o assunto bem
importante, um deles é o que desde o inicio da matéria é o tipo “public” que não
tem possui nenhuma restrição de acesso ao código, e o conceito geral sobre os
modificadores de acesso é para evitar erros e falhas de acesso e autenticação
na hora de executar todo o código fonte do programa e tornando mais fácil de se
entender a lógica por outro programador.
Pois bem, a minha explicação será geral sobre o
tema abordado, nesta aula o professor apenas falou sobre os modificadores de
acesso do java: public, private, protected e default,
mas
também devo ressaltar alguns dos outros modificadores que não se
referem a acesso: final, abastract estatic.
Um modificador de acesso determina como será a
visibilidade de uma classe, atributo ou método a partir de outras classes ou
métodos. Alguns modificadores podem ser usados para os esses três itens,
porém outros podem ser específicos para as classe , por exemplo.
Modificadores de Acesso
·
public: Uma classe declarada como pública dá as outras classes, de todos os
pacotes, acesso aos seus membros que forem públicos também. Lembre-se porém que
classes de diferentes pacotes precisam ser importadas para poderem ter
visibilidade (assunto para um outro post). O mesmo se aplica
aos membros da classe (métodos e atributos) que se forem declarados como
públicos também são visíveis em todas as classes de todos os pacotes. Por
exemplo: Imagine duas classes A e B, ambas públicas, nesse cenário você
consegue instanciar um objeto do tipo B na classe A e acessar os membros da
classe B.
·
private: O membro da classe não pode ser acessado por nenhuma outra classe,
quando é declarado private. Como não é visto pelas subclasses, não
se aplica regras de overriding. Esse modificador não se
aplica a classes, somente a seus membros (métodos e atributos) .
·
protected: Quando um membro da classe é declarado assim, ele
se torna acessível por classes do mesmo pacote ou através de herança. Os
membros herdados não são acessíveis a outras classes fora do pacote em que
foram declarados. Você só pode usar esse modificador em métodos e atributos.
·
default (padrão): A classe e/ou seus membros são acessíveis somente por
classes do mesmo pacote.
- Outros modificadores de acesso
·
final: Quando é aplicado à classe não permite estende-lá, nos métodos impede
que o mesmo seja sobrescrito (overriding) na subclasse, já nas variáveis
impossibilita que essa seja reinicializada com outro valor.
·
abstract: Classes declaradas como abstratas provém um modo de adiar a
implementação de métodos também declarados como abstratos para subclasses. Uma
classe abstrata não pode ser instanciada, ou seja, não podemos chamar os seus
construtores. A primeira classe não abstrata que estender a classe abstrata
deverá implementar todos os métodos abstratos herdados, esse modificador não se
aplica à variáveis.
·
static: Variáveis e métodos marcados como static pertencem à
classe, ao invés de alguma instância dessa, esse modificador não se aplica a
classes.
Guetters
e Setters
Com os
modificadores de acesso, como por exemplo “private” que é usado para realizar o
bloqueio onde ninguém consiga modificar, acessar e até mesmo ler o atributo da
classe. Com tudo para que possamos neste caso utilizar o atributo modificado para
acesso “private”, precisaríamos então para acessa-lo com os métodos (“get” que
pega o valor do atributo ou o “set” que modifica o valor do atributo).
Conforme
exemplo da apostila Caelum:
public class Conta {
private double saldo;
private double limite;
private Cliente titular;
public double getSaldo() {
return
this.saldo;
}
public void setSaldo(double saldo)
{
this.saldo = saldo;
}
public double getLimite() {
return
this.limite;
}
public void setLimite(double limite)
{
this.limite = limite;
}
public Cliente getTitular() {
return this.titular;
}
public void setTitular(Cliente titular) {
this.titular = titular;
}
}
Por ultimo! O professor explicou a conceito de CONSTRUTORES,
o método construtor é desenvolvido da mesma forma que uma função, a diferença é
que ele tem o mesmo nome da classe. Devido ao fato de que um objeto deve ser construído
cada vez que invocamos a classe, está questão é designada aos construtores da
classe. Por vez tem a finalidade de podermos ter dois objetos com a mesma característica,
mas não são os mesmos objetos.
Reflexão:
Na minha reflexão acredito que esta aula foi bem
exemplificada e direta no assunto estipulado pelo professor, receio eu que será
muito importante em questões de sanar muitas duvidas que surgem durante o
semestre.
Nenhum comentário:
Postar um comentário