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”.