Conceito de static, aprovado?

4 respostas
G

Pessoal este tópico é para definir se entendi bem o que vem a ser static.
Então vamos lá. a palavra static serve para criar métodos e variaveis antes de elas serem criadas como objeto! Tipo quando usamos o static em algum momento da classe. Ele vem ser executado primeiro que os metodos normais e variaveis… E so podem ser usados uma unica vez!
quando se usar para instanciar uma classe o static vem primeiro que o construtor… Isto ta correto ate agora?
grato.

4 Respostas

neohacker

http://www.guj.com.br/java.tutorial.artigo.121.1.guj

Calvin

Pelo que consegui entender lendo o que você escreveu, seu conceito esta errado! :frowning:

Ao colocar static antes de algum metodo ou atributo significa que o mesmo pertence a classe e não ao objeto.

Exemplo:

public Class Pessoa 
{
	// Exemplo de static no atributo.
	
	public static String nome;
	public static Long   idade;

	
	// ... + atributos e metodos quaisquer, sendo static ou não! ...
	
}


public class TesteStatic
{
	public static void main(String[] args)
	{
		Pessoa paulo = new Pessoa();
		paulo.nome = "Paulão"; // Da erro pois o atributo é da classe e não do objeto.
		
		Pessoa.nome = "Paulão"; // Correto!!!
		
	}
}

Quer mais um exemplo?! (Agora com descrição)

Você vai criar um incrível jogo de batalha, onde tem diversos soldados, cada soldado é um objeto! Como você poderia controlar o numero de soldados que seu exercito tem?! Coloca um atributo estatico (numeroSoldados) na classe e você faz o controle. Segue abaixo a classe soldado:

public Class Soldado
{
	// Exemplo de static no atributo.
	
	private String 		nome;
	private String 		patente;
	private TipoSanguineo 	tipoSanguineo;
	private static int 	numeroSoldados;
	
	Soldado() 
	{
		numeroSoldado += 1;
	}
	
	public void mataSoldado() 
	{
		numeroSoldado -= 1;
	}
}

Entendeu?!
Abraços …

G

Valeu galera…

LPJava

Paulo Roberto Schiavon:
Pelo que consegui entender lendo o que você escreveu, seu conceito esta errado! :frowning:

Ao colocar static antes de algum metodo ou atributo significa que o mesmo pertence a classe e não ao objeto.

Exemplo:

public Class Pessoa 
{
	// Exemplo de static no atributo.
	
	public static String nome;
	public static Long   idade;

	
	// ... + atributos e metodos quaisquer, sendo static ou não! ...
	
}


public class TesteStatic
{
	public static void main(String[] args)
	{
		Pessoa paulo = new Pessoa();
		paulo.nome = "Paulão"; // Da erro pois o atributo é da classe e não do objeto.
		
		Pessoa.nome = "Paulão"; // Correto!!!
		
	}
}

Quer mais um exemplo?! (Agora com descrição)

Você vai criar um incrível jogo de batalha, onde tem diversos soldados, cada soldado é um objeto! Como você poderia controlar o numero de soldados que seu exercito tem?! Coloca um atributo estatico (numeroSoldados) na classe e você faz o controle. Segue abaixo a classe soldado:

public Class Soldado
{
	// Exemplo de static no atributo.
	
	private String 		nome;
	private String 		patente;
	private TipoSanguineo 	tipoSanguineo;
	private static int 	numeroSoldados;
	
	Soldado() 
	{
		numeroSoldado += 1;
	}
	
	public void mataSoldado() 
	{
		numeroSoldado -= 1;
	}
}

Entendeu?!
Abraços …

mais assim o fato que ele falou de static ser executado primeiro que acho qeu ele confudiu com bloco de inicialização… que sao executados primeiros que os contrutores.
A função de ter o modificador de static em metodos e variaveis de instancia eh o fato de que você nao precisar criar um objeto para acesar aquela variavel ou metodo… ou seja… o acesso é direto… veja:

class Sttaic{
static int num;
static void setNum(){}
public static void main(String []ar){
System.out.println(num);
setNum();
}
}

sem o static

class Sem{
int num;
void setNum();
public static void main(String ar[]){
Sem s  = new Sem();
System.out.println(s.num);
s.setNum();
//isso é obrigado para chamar os membros nao static dentro
//de um  contexto static, senao o codigo nem compila
}}

flw!!!

Criado 8 de maio de 2007
Ultima resposta 8 de mai. de 2007
Respostas 4
Participantes 4