Metodo Static

O que implica definir todas as variáveis de uma classe com o static?

Quando você define um atributo como static, o valor desse atributo é compartilhado entre todos os objetos, ou seja, se em um objeto você alterar o valor desse atributo, o valor será refletido para todos os outros objetos também, pois como eu disse o valor é compartilhado.

Implica que todos os objetos terão os mesmos valores para os atributos

1 curtida

Olá, @_cobain.

Você deve se perguntar o que, de fato, é uma variável estática. Como o Mike disse acima, “o valor desse atributo é compartilhado entre todos os objetos […]”. Quando eu estava estudando, gostava de imaginar o seguinte:

Atributos, métodos e variáveis estáticas fazem parte da classe, não apenas do Objeto.

Recomendo que você estude o que é, quando usar e quando não usar o static.

[]'s

Eu considero o atributo static como algo global para a minha classe. Por exemplo, supondo que eu tenho uma classe chamada Cachorro estruturada da seguinte forma:

public String nome, raça;
public int peso, idade;

public static int cachorrosNoCanil = 0;

public Cachorro() {
	cachorrosNoCanil++;
}

Cada cachorro possui um atributo nome, raça, peso e idade. Porém a variável chamada cachorrosNoCanil faz parte da minha classe e pode ser chamada usando o nome da classe, da seguinte forma:

public static void main(String[] args) {
	System.out.println(Cachorro.cachorrosNoCanil); //imprime 0
	Cachorro c = new Cachorro(); //cria um novo cachorro e adiciona um na variável cachorrosNoCanil
	System.out.println(Cachorro.cachorrosNoCanil); //imprime 1
}

Tenha em mente que algo definido com static não pode ser serializado pois fará parte da classe.