Metodo Static

3 respostas
_cobain

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

3 Respostas

Mike

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

FearX

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

Guilherme9401

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.

Criado 18 de março de 2019
Ultima resposta 19 de mar. de 2019
Respostas 3
Participantes 4