Eae galera, ainda to estudando Java e não to entendendo a função do static. Entendi pra q serve mas não vi um exemplo real, tipo, sei q ele economiza recursos por ter q apenas incrementar uma variavel ao inves de ficar fazendo copias (não é isso?), mas não sei onde posso usar isso. Alguem poderia dar algum exemplo? Não precisa o codigo, so quero entender a ideia.
bem Duende Macabro… hehehehe, um exemplo do uso de static em uma variavel de instancia seria o encontrado no livro dos Deitel:
Suponha q tivessesmos um video game com Marcianos e outras criaturas do espaço. Cada Marciano tende a ser corajoso e disposto a atacar outras criaturas espaciais qnd esta ciente de q há pelo menos cinco Marcianos presentes. Se houver menos de cinco Marcianos presentes, todos os Marcianos tornam-se covardes. Assim, cada Marciano precisa saber a quantidadeDeMarcianos. Poderíamos dotar a classe Marciano com quantidadeDeMarciano como dado de instancia. Se fizermos isso, então cada Marciano terá uma copia separada dos dados de instancia e toda vez q criarmos um novo Marciano teremos de atualizar a variavel de instancia quantidadeDeMarcianos em cada Marciano. Isso desperdiça espaço, com copias redundantes, e tempo, para atualizar as copias separadas. Em vez disso, declaramos q quantidadeDeMarcianos será static. Isso torna quantidadeDeMarcianos um dado com escopo de classe. Cada Marciano poder ver a quantidadeDeMarciano como se fosse dado de instancia de Marciano, mas apenas uma copia da quantidadeDeMarciano estática é mantida por Java. Isso economiza espaço. Economizamos tempo fazendo o construtor Marciano incrementar a quantidadeDeMarcianos para cada objeto Marciano.
…o exemplo é um tanto extenso… e o problema super simples, mas espero q tenha exclarecido algo!
[]'s
D
Duende_MacabroPJ
Blz valeu, mas eu tenho esse livro, foi como eu disse, eu entendi oq é mas so não entendo onde usar, queria saber um exemplo real tipo, quando tem um programa q tenha q fazer isso com isso, ae vc usa static. 8O
É mais ou menos isso. :o
T
TomazLavieriPJ
"Duende_Macabro":
Blz valeu, mas eu tenho esse livro, foi como eu disse, eu entendi oq é mas so não entendo onde usar, queria saber um exemplo real tipo, quando tem um programa q tenha q fazer isso com isso, ae vc usa static. 8O
É mais ou menos isso. :) :D :o
Bom cara... o static é quando vc tem algo que é imutavel, idependente de qual é o opjeto instanciado... vamos a um exemplo bem pequeno
bom neste caso ai... naum vale a pena... criar um variavel com o nome do sexo para cada objeto criado...
pois pra qualquer objeto criado... as opções saum as mesmas...
métodos staticos... é um método q pode ser executado... sem existir uma instancia do objeto... (se quizer explicação sobre isso tb... só falar)
existe muitos casos q objetos... necessitam de um contador de quantos objetos existem (quando se trata de um objeto lista)... nestes casos... geralmente se poem um contador estatico... pois ele é o mesmo para todos objetos
eltonk
Duende… o negócio é mais simples do que vc imagina =)
Olha só…
Eu tenho uma classe que monta relatórios para a web, essa classe monta uma tabela já toda formatada e certinha para a publicação. Essa classe tem vários métodos que dependendo do tipo do relatório vão ou não sendo chamadas, o que no final vira um relatório do geitnho que eu quero…
Como todos esses métodos utilizam a mesma variável para ir montando o meu relatório, eu crio uma variável static e trabalho com essa variável em toda minha classe (em todos os métodos desta classe).
Muito mais simples do que eu criar em cada método uma variável tabela e ficar passando de método a método o valor dessa variável…
Poupo esforços e recursos… pois a cada nova variável é consumida mais recursos da máquina. Assim eu trabalho com 1 variável somente =)
mas o segundo modo é uma pessima pratica de programação…
bom…
c o método naum é estatico… vc naum pode fazer Classe.metodo() … isso é um erro de sintaxe…
pois isso exigi q este método seja o mesmo para qualquer q seja a classe