Análise de Código - Atributo Estático e Método Estático
27/01/2009
0
Meus colegas, como já puderam ver aí no Fórum, estou iniciando em C# e tenho dúvidas inerentes ao assunto.
Estou estudando em um boa apostila, mas que não detalha muito sobre determinados pontos de seus códigos.
No código abaixo, foi utilizada uma serie de instruções no que diz respeito a uma das classe do sistema.
Eis o código. Abaixo detalharei minha dúvida:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace testStaticInst
{
class Class1
{
//atributo estático
public static int total = 0;
//metodo estatico
public static void inc()
{
total++;
}
}
class App
{
static public void Main()
{
Console.WriteLine(Class1.total++);
Class1 cl1 = new Class1();
Console.WriteLine(Class1.total++);
Class1 cl2 = new Class1();
Console.WriteLine(Class1.total);
Console.ReadLine();
}
}
}
Minha dúvidas são:
Neste trecho do código,
[b:226b8eb03e] Console.WriteLine(Class1.total++);
Class1 cl1 = new Class1();
Console.WriteLine(Class1.total++);
Class1 cl2 = new Class1();
Console.WriteLine(Class1.total);[/b:226b8eb03e]
Não consegui entender o sentido das linhas:
[b:226b8eb03e]Class1 cl1 = new Class1(); e Class1 cl2 = new Class1();[/b:226b8eb03e]
sendo que se eu simplesmente utilizar,
Console.WriteLine(Class1.total++); e Console.WriteLine(Class1.total);
sem emncionar estas linhas,os resultados são mostrados normalmente no console.
Então pergunto eu:
Pra que servem estas linhas [b:226b8eb03e]Class1 cl1 = new Class1();[/b:226b8eb03e] e [b:226b8eb03e]Class1 cl2 = new Class1();[/b:226b8eb03e].
Poderiam me explicar o sentido delas neste sistema?
Estou estudando em um boa apostila, mas que não detalha muito sobre determinados pontos de seus códigos.
No código abaixo, foi utilizada uma serie de instruções no que diz respeito a uma das classe do sistema.
Eis o código. Abaixo detalharei minha dúvida:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace testStaticInst
{
class Class1
{
//atributo estático
public static int total = 0;
//metodo estatico
public static void inc()
{
total++;
}
}
class App
{
static public void Main()
{
Console.WriteLine(Class1.total++);
Class1 cl1 = new Class1();
Console.WriteLine(Class1.total++);
Class1 cl2 = new Class1();
Console.WriteLine(Class1.total);
Console.ReadLine();
}
}
}
Minha dúvidas são:
Neste trecho do código,
[b:226b8eb03e] Console.WriteLine(Class1.total++);
Class1 cl1 = new Class1();
Console.WriteLine(Class1.total++);
Class1 cl2 = new Class1();
Console.WriteLine(Class1.total);[/b:226b8eb03e]
Não consegui entender o sentido das linhas:
[b:226b8eb03e]Class1 cl1 = new Class1(); e Class1 cl2 = new Class1();[/b:226b8eb03e]
sendo que se eu simplesmente utilizar,
Console.WriteLine(Class1.total++); e Console.WriteLine(Class1.total);
sem emncionar estas linhas,os resultados são mostrados normalmente no console.
Então pergunto eu:
Pra que servem estas linhas [b:226b8eb03e]Class1 cl1 = new Class1();[/b:226b8eb03e] e [b:226b8eb03e]Class1 cl2 = new Class1();[/b:226b8eb03e].
Poderiam me explicar o sentido delas neste sistema?
Nosliwde
Curtir tópico
+ 0
Responder
Posts
30/01/2009
Sanses
Vamos lá
Quando vc usa new está criando uma instancia nova da classe, sendo assim este exemplo tenta mostrar que embora vc crie varias classes todas elas estão incrementando o mesmo valor:
0
1
2 que aparece no console. Isoo por que é uma variavel statica.
se a variavel fosse declarada assim:
public int total = 0;
cada instancia da classe seria criada com zero, e todas incrementariam 1, tento o mesmo resultado.
0
1
1 no console
Entendeu ?
[]´s
Sanses
Quando vc usa new está criando uma instancia nova da classe, sendo assim este exemplo tenta mostrar que embora vc crie varias classes todas elas estão incrementando o mesmo valor:
0
1
2 que aparece no console. Isoo por que é uma variavel statica.
se a variavel fosse declarada assim:
public int total = 0;
cada instancia da classe seria criada com zero, e todas incrementariam 1, tento o mesmo resultado.
0
1
1 no console
Entendeu ?
[]´s
Sanses
Responder
Clique aqui para fazer login e interagir na Comunidade :)