Metodos construtores

nao consegui entender para que servem os metodos construtores e qual a necessidade de utiliza-los. se eu faco uma classe onde defino variaveis de instancia, e alguns metodos, pq criar um metodo contrutor para essas variaveis de instancia?

O construtor é o bloquinho (termo técnico) de código que vai ser executado toda vez que o objeto for instanciado.

Por exemplo, se eu quero ter uma informação no console toda vez que uma ‘Conta’ seja instanciada posso usar o construtor veja:


public class Conta{

      private double saldo;       

      public Conta{
              System.out.println("Uma nova conta foi criada");
      }

}

Todas as vezes que uma nova conta for criada uma mensagem “Uma nova conta foi criada” será impressa.

Mas o construtor também pode ser utilizado para definir valores para variáveis de instância assim que o objeto for criado.
Se você desejasse que um objeto Conta já fosse criado com o valor de R$ 100,00 poderia fazer isso:


public class Conta{

      private double saldo;       

      public Conta{
              saldo = 100;
      }

}

Assim toda conta recém criada já vem com 100,00 reais.

Entendeu?

Valeu.

[quote=Daniel T.S]O construtor é o bloquinho (termo técnico) de código que vai ser executado toda vez que o objeto for instanciado.

Por exemplo, se eu quero ter uma informação no console toda vez que uma ‘Conta’ seja instanciada posso usar o construtor veja:


public class Conta{

      private double saldo;       

      public Conta{
              System.out.println("Uma nova conta foi criada");
      }

}

Todas as vezes que uma nova conta for criada uma mensagem “Uma nova conta foi criada” será impressa.

Mas o construtor também pode ser utilizado para definir valores para variáveis de instância assim que o objeto for criado.
Se você desejasse que um objeto Conta já fosse criado com o valor de R$ 100,00 poderia fazer isso:


public class Conta{

      private double saldo;       

      public Conta{
              saldo = 100;
      }

}

Assim toda conta recém criada já vem com 100,00 reais.

Entendeu?

Valeu.
[/quote]

a explicacao foi muito boa, obrigado
mas se eu criar um programa sem um metodo contrutor ele vai funcionar tbm certo?

Sim ele funciona porque o compilador faz um construtor padrão pra você.
O construtor padrão é assim:


public NomeDaClasse(){
       super();
}

que é um construtor vazio. Esse ‘super();’ é uma chamada ao construtor da super classe.

Só acrescentando o que o Daniel T.S falou.

Se vc criar um construtor, qualquer que seja, o compilador java não vai criar o padrão, por exemplo:

se vc criar um contrutor

public NomeDaMinhaClasse (String nome) {
    this.nome = nome;
}

o compilador não vai fazer o padrão, então se vc precisar de um vazio vai precisar fazer por conta.

O construtor tmb define como sua classe será instanciada, se vc só deixar o construtor acima significa que quem quer que queira (quanto Q) utilizar sua classe terá OBRIGATÓRIAMENTE passar um nome para a variável “nome”.