Construtores
Construtores são métodos especiais chamados pelo sistema no momento da criação de um objeto. Eles não possuem valor de retorno, porque você não pode chamar um construtor para um objeto, você só usa o construtor no momento da inicialização do objeto. Construtores representam uma oportunidade de inicializar seus dados de forma organizada. Construtores são obrigatórios em uma classe, mas não é preciso declara-los, caso não declare um construtor por default a declaração é: Classe().
Static
Declaração de um tipo de Classe, método, propriedade ou variável que pertence exclusivamente a sua própria classe, classes estáticas não podem ser instanciadas.
Exemplo:
Neste cenário queremos saber quantos objetos de uma determinada classe foram instanciados, para isto criamos um contador no construtor do objeto e a cada objeto criado o contador aumenta nos mostrando no final a quantidade exata de novos objetos de uma classe. Visto que nosso contador pertence a classe e não a cada instancia de cada classe, neste caso para usar o contador não precisamos instanciar a classe graças a declaração static.
Java
Classe #1 – Principal
public class Principal { public static void main(String[] args) { System.out.println("Quantidade de objetos:" + Construtor.quantidade); Construtor c1 = new Construtor(); System.out.println("Quantidade de objetos:" + Construtor.quantidade); Construtor c2 = new Construtor(); System.out.println("Quantidade de objetos:" + Construtor.quantidade); Construtor c3 = new Construtor(); System.out.println("Quantidade de objetos:" + Construtor.quantidade); } }
Classe # 2 – Construtor
class Construtor { static int quantidade; Construtor() { quantidade = quantidade + 1; } }
C#
Classe #1 – Principal
class Program { static void Main(string[] args) { Console.WriteLine("Quantidade de objetos:" + Construtor.quantidade); Construtor c1 = new Construtor(); Console.WriteLine("Quantidade de objetos:" + Construtor.quantidade); Construtor c2 = new Construtor(); Console.WriteLine("Quantidade de objetos:" + Construtor.quantidade); Construtor c3 = new Construtor(); Console.WriteLine("Quantidade de objetos:" + Construtor.quantidade); Console.ReadKey(); } }
Classe # 2 – Construtor
class Construtor { public static int quantidade; public Construtor() { quantidade = quantidade+1; } }