O significa static em Java Como declarar uma

Propaganda
O significa static em Java
Pelo nome, percebe-se que está relacionado com algo constante, algo parado, estático.
Quando definimos uma classe e criamos vários objetos dela, já sabemos que cada objeto
irá ser uma cópia fiel da classe, porém com as suas próprias variáveis e métodos em
lugares distintos da memória.
Ou seja, o objeto 'porsche' tem suas variáveis próprias, diferentes do objeto 'ferrari',
embora ambos tenham o mesmo 'modelo', que é a classe 'Carro'.
Quando definimos variáveis com a palavra static numa classe ela terá um
comportamento especial: ela será a mesma para todos os objetos daquela classe.
Ou seja, não haverá um tipo dela em cada objeto. Todos os objetos, ao acederem e
modificarem essa variável, acedem à mesma variável, ao mesmo espaço da memória, e
a mudança pode ser vista em todos os objetos.
Como declarar uma variável static em Java
Basta colocar a palavra static antes do tipo:
static tipo nomeDaVariavel
Numa classe:
private static int vendidos;
public static int totalAlunos;
Quando usar variáveis static em Java
Principalmente quando se quiser ter um controlo sobre os objetos ou quando todos os
objetos devem partilhar uma informação.

Exemplo 1: Para controlo de número total de objetos
Imagine
um
sistema
de
informação
para
stand
de
automóveis.
Cada carro que se vende, tem um comprador diferente, dados diferentes etc.
Portanto,
cada
carro
será
um
objeto.
Cria-se a variável estática 'total', e no construtor incrementa-se (total++). Assim,
saberemos quantos carros foram vendidos, automaticamente.
Um exemplo parecido, seria para um aplicativo de uma escola ou empresa, para
controlo de quantos funcionários existem na empresa, ou em cada setor dela.

Exemplo 2: Para Partilhar uma informação
Muitas aplicações Java, principalmente jogos, usam o static para partilhar informações
sobre o número de objetos. O uso tem a ver com algoritmos sobre inteligência artificial.
Por exemplo, num jogo de futebol, quando se joga contra o computador.
A máquina tem uma estratégia diferente dependendo da equipa que se escolher, do
modo
como
se
joga,
do
número
de
jogadores,
etc.
E como saber o número atual de jogadores da equipa deles?
Ora, um método static. Pois todos os jogadores são objetos de uma mesma classe.
Num jogo de luta, se existirem 3 inimigos contra 2 personagens teus. Provavelmente o
computador vai-te atacar.
Mas se matares dois deles, eles estarão em desvantagem. Existe então um método que
faz com que os inimigos corram, caso o número de jogadores dele seja menor que o teu.
Para obter essa informação, os objetos devem partilhar da informação: número de
personagens vivos.
Exemplo de código com static
O seguinte código cria uma classe bem simples, a "Carro" que simplesmente informa
quando o objeto é criado - através do método construtor padrão main - e incrementa a
variável 'total', que vai guardar a informação do número total de objetos/carros criados
na sua aplicação.
staticTest.java
public class staticTest {
public static void main(String[] args) {
Carro porsche = new Carro();
Carro ferrari = new Carro();
Carro jipe = new Carro();
}
}
Carro.java
public class Carro {
public static int total=0;
Carro(){
total++;
System.out.println("Objeto criado. Existem "+total+" objetos
dessa classe");
}
}
Download