Mini Curso de Java – Parte 4 3


Java LogoOlá pessoal. Esta é a quarta parte do nosso mini curso de Java que terá 11 partes. Ele é voltado para iniciantes, porém é recomendado que ao estudá-lo, você já tenha pelo menos algum conhecimento em lógica de programação. Se você perdeu:
a primeira parte, leia aqui; a segunda parte, leia aqui; a terceira parte, leia aqui;

Encapsulamento

Modificadores de acesso:
Os atributos e métodos de uma classe podem ser públicos, privados e protegidos.

Os atributos públicos (public) podem ser acessados a partir de métodos membros da classe ou de métodos de outras classes, e devem ser usados em casos excepcionais, pois violam o encapsulamento. Os atributos privados estão encapsulados dentro da classe, só podendo ser acessados por membros da classe. Em uma classe, a maioria dos atributos deve ser privada. O acesso a esses atributos deve ser realizado através de métodos da classe que especialmente chamamos de métodos getters e setters.

Os atributos protegidos não são usados com frequência, somente em casos muito especificos, eles podem ser acessados pela sua classe onde este foi declarado, em subclasses desta classe onde este foi declarado (classes que extends a classe que o declara) e também em classes quem fazem parte do mesmo pacote (package) desta classe.

Os métodos públicos podem ser chamados tanto a partir de outros métodos da mesma classe quanto a partir de membros de outras classes, enquanto que os métodos privados só podem ser acessados a partir de métodos da mesma classe.

Em java, as palavras-chave private e public são usadas para determinar a visibilidade dos atributos e dos métodos. Um bom hábito de programação consiste em manter privado tudo aquilo que não tem que ser público.

A seguir temos um exemplo de uma classe que implementa o conceito de encapsulamento, deixando todos os atributos como privados e os métodos necessários como publicos.
class Abastecimento{
…private static final int GASOLINA_COMUM = 0;
…private static final int GASOLINA_ESPECIAL = 1;
…private static final int ALCOOL = 2;
…private static float custoLitro;
…private float litros = 0;
…private float custo = 0;
…private Date horario;
…public void obterCustoLitro(){
…}
…public void especificarLitros(){
…}
…public void incrementarLitros(){
…}
…public void encerrarAbastecimento(){
…}
}

Os métodos públicos definem a interface com as instâncias, enquanto os métodos privados são uteis quando é nessário definir trechos de código que precisam ser executados a partir de mais de um método da classe, mas não a partir de métodos de outras classes.

Os métodos protegidos tem uma caracteristica especial, pois herda semelhanças de métodos públicos e privados ao mesmo tempo. Esse métodos podem ser chamados por todas as classe que compõe um conjunto maior chamado pacote (package), os pacotes são uma forma de organizar diversas classe em grupos menores dentro do seu projeto.

Getters e setters:
Os métodos getters e setters são métodos responsáveis por fazer a comunicação entre uma classe e os atributos privados de outra classe, lembre-se atributos privados não podem ser acessados de outras classes, e sim somente por métodos da própria classe.

Se temos atributos privados em nossas classes é que por algum motivo não queremos que seus valores sejam alterados por qualquer classe e mesmo que se alterados queremos ter um controle sobre isso, para que isso ocorra esses atributos precisam ser privados. Sendo atributos privados agora vamos precisar criar métodos que possam alterar ser valores e regastar os valores, esses métodos são chamados de getters e setters (getters resgatam valores e setters alteram valores).

Quando temos métodos para resgatar os valores e alterar temos um controle do que pode ou não ser feito com os atributos das classes. Exemplo, nos métodos setters podemos criar uma regra para que só sejam aceitos valores que são convenientes a nossa classe, caso contrário podemos descartar a alteração, já em métodos getters podemos retornar valores somente se algumas regras forem compridas, assim enibindo o acesso indevido a atributos de nossa classe. Abaixo temos um exemplo de uma classe que controla o abastecimento.
class Abastecimento{
…private static float custoLitro;
…private float litros = 0;
…public void setLitros(float litros){
……if(litros > 0)
………this.litros = litros;
……else
………this.encerrarAbastecimento();
…}
…public float Litros(){
……if(abastecimentoConcluido()){
………return this.litros;
……}else{
………this.encerrarAbastecimento();
………return this.litros;
……}
…}
…public boolean abastecimentoConcluido(){
…// método que verifica se o abastecimento está concluido.
…}
}

Semana que vem estarei de volta com a parte 4 do Mini Curso de Java: Sobrecarga e Sobrescrita de Métodos e de Construtores. Até lá! 😉
[ad]

Últimos 5 artigos de Tiago Souza

Sobre Tiago Souza

De Campinas-SP, bacharel em Ciência da Computação pela Anhanguera Educacional. Técnico em Processamento de Dados pelo Cotuca é desenvolvedor Web e trabalhou dois anos com desenvolvimento PHP e Java. Atualmente trabalha como desenvolvedor .Net (C#). Utilizando metodologia SCRUM, Também desenvolve aplicativos para Android por prazer.

Deixe uma resposta