Olá desenvolvedores, classes e atributos estáticos é o nosso tema de hoje. Assim, descansaremos um pouco do assunto listas. Mas não se dê ao luxo de esquecer delas. Não vamos abandoná-las por completo, estamos apenas preparando o terreno para voltar a elas. E sempre dentro do contexto da implementação de uma nova funcionalidade.

Classes e atributos estáticos são também conhecidos como constantes. Em outras palavras, eles são estáticos e possuem sempre o mesmo valor, ou seja, que não podem ser alterados no decorrer do programa.

Por exemplo, um atributo estático, poderá ser acessado por todas as instâncias do objeto da classe, com uma variável comum. A diferença é que ele será o mesmo em todas as instâncias, ao passo que a variável poderá ter seu valor alterado em tempo de execução de um programa.

MÉTODOS ESTÁTICOS NA PRÁTICA

Quando se declara um atributo como “static”, estamos também indicando que ele não é mais um atributo de cada objeto, e sim um atributo da classe. Dessa forma, ele pode ser utilizado diretamente pela classe sem necessidade de instanciação. E pode ser referenciado sem a utilização da palavra reservada this.

Então vamos começar. Do mesmo modo que procedemos com as classes, criando um pacote para recebê-las, faremos agora o mesmo procedimento com os atributos estáticos.

Em source (src) clique com o botão contexto do mouse => new => package.

Na janela “New Java Package”, atribua um nome para o seu novo pacote. Objetivando manter certa organização e padronização, siga o exemplo do “modelo” adotado com o pacote das classes, algo como – cursoJava.classes. Assim, o novo pacote poderia ser “cursoJava.constantes”.

O próximo passo é criar dentro do pacote recém-criado uma nova classe. Assim, clique com o botão direito do mouse sobre o pacote => new => class. O nome da classe será “StatusAluno”.

ATRIBUTOS ESTÁTICOS

Dentro da classe criaremos dois atributos estáticos, ou seja, que carregará sempre o mesmo valor. É interessante em casos em que tal atributo é único. Isto é, quando este atributo é compartilhado por todos os objetos da classe. Dessa forma, quando por meio de um objeto nós o modificarmos, os outros objetos enxergarão o mesmo valor. E para isso o atributo será “declarado” precedido da palavra reservada static.

public static String APROVADO = "Aprovado";

Toda constante em Java fica em letras maiúsculas. Agora, sempre que for necessário utilizar a variável “APROVADO”, será só utilizá-la. Tá, mas por que preciso de todo este trabalho? Bom, estamos o tempo todo trabalhando com comparações em Java, e neste caso reduzimos a possibilidade de erro. E também, uma vez que a utilizamos em vários lugares do sistema, não precisamos ficar reescrevendo todo aquele texto.

Outro benefício, é que se precisarmos fazer alguma alteração, basta fazê-la em um único lugar. Outro ponto interessante da classe, é que não precisamos instanciar um objeto para ela. Isto significa que por serem estáticos o acesso se dará pelo nomedaclasse.nomeatributo.

Dessa forma o método que verifica a situação acadêmica do aluno, receberá as seguintes modificações.

Criamos um atributo “static” para cada situação.

EM POUCAS PALAVRAS

Se o sistema em questão estiver utilizando este atributo em mil lugares distintos, a alteração poderá ser feita sem gerar qualquer tipo de impacto. Os benefícios incluem, fácil manutenção do sistema em função da centralização da informação, evita também a duplicação de código. Além de evitar um possível erro de sintaxe.

E como benefício extra teremos um código limpo e enxuto. Esse tipo de estrutura é mais comumente utilizado em casos, por exemplo, de definir se é pessoa física ou pessoa jurídica.

É importante considerar, quando se trata de constantes o uso da palavra reservada Final. O uso desta palavra reservada garantirá que os valores não poderão ser alterados em tempo de execução do programa. Porque neste caso, a tentativa de alterar um valor de uma constante implicará em um erro “em tempo de compilação”.

Entretanto, ao utilizar o final, também estaremos garantindo que a classe não poderá ser estendida a nenhuma outra classe. Caso isso seja necessário, seremos conduzidos ao erro em tempo de compilação, se o fizéssemos mesmo assim.

No mais, nada será alterado no resultado do algoritmo. Quando executá-lo, nada de diferente acontecerá. Entretanto, você terá consciência de ter adotado boas práticas de programação nos bastidores.

E programação é isso, a mágica de fato acontece por trás das cortinas. E o usuário final jamais terá consciência do que foi feito. Exceto se a forma como você programou o sistema afete a performance do mesmo. Aí neste caso, tenha certeza que o usuário irá notar.

Espero que tenham gostado, e principalmente compreendido o propósito de se utilizar classes e atributos estáticos.