Inquiridor
Static versus Instancia

Discussão Geral
-
Se com Static nao precisamos ficar instanciando classes para usarmos metodos ou propriedades, pq nao criamos todos metodos como Static ? Nao seria muito mais facil ?
- Tipo Alterado William John Adam TrindadeModerator terça-feira, 17 de março de 2015 12:38 discussao
Todas as Respostas
-
AGA,
Se partirmos da premissa que vc citou, deixaremos de lado toda a orientação a objetos, voltando para a programação estruturada em Pascal, C e Basic.
As instâncias/objetos são representações de entidades de negócio ou do mundo real (uma nota fiscal, um pedido de venda, uma pessoa física). Logo, estas construções são utilizadas para armazenar os estados destas referências em um determinado instante. Assim, se vc criar uma classe estática para representar uma pessoa física, teria num determinado momento apenas informações de um contribuinte (a cada nova atribuição de dados, vc perderia dados que poderiam ser de outra pessoa).
Acredito que o que expus seja uma boa razão para justificar o uso de objetos em sistemas. Claro que para cálculos matemáticos como raiz quadrada, potenciação, não seria necessário a criação de objetos. Para estas funcionalidades bem específicas o próprio .NET faz uso de classes estáticas, sendo neste caso específico o tipo Math. -
-
-
Instancia sempre vai ser uma representação de uma classe, ou seja, um objeto na memória que será usado dentro de um escopo, quando não estiver mais em uso, o framework se encarrega de liberar memória e excluir o objeto criado da memória.
Já um objeto Static, vai ser carregado pelo framework e só será finalizado quando a aplicação não estiver mais sendo usada, ou seja, se houver muitos itens a serem carregados vai existir até o fim da aplicação.
https://msdn.microsoft.com/en-us/library/79b3xss3.aspx?f=255&MSPPError=-2147217396