quinta-feira, 17 de janeiro de 2013

Aula 15 06/11/12


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: publicprivateprotected 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
·         publicUma 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.
·         privateO 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 overridingEsse 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
·         finalQuando é 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.
·         abstractClasses 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.
·         staticVariá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