Olá pessoal, alguém poderia me ensinar como faço para criar 2 CONSTRUTORES de uma mesma classe?
Construtores em java
14 Respostas
Ter mais de um construtor na mesma classe chama-se sobrecarga (overload) de construtores, é bem simples, basta criar seus construtores com diferentes listar de argumentos.
Exemplo:
public class OverloadedConstructor
{
public OverloadedConstructor(String nome)
{
}
public OverloadedConstructor(int idade)
{
}
}
Você faz igual a sobrecarga de métodos, lembrando construtores não tem tipo de retorno
class MinhaClasse {
// construtor sem parâmetros..
MinhaClasse() {}
// construtor com parametros int e double
MinhaClasse(int var1, double var2) {}
// construtor com parametros int e String
MinhaClasse(int var3, String var4) {}
}
Olá.
Para usar dois contrutores de uma mesma classe, basta que tenham assinaturas diferentes:
public class Sobrecarga{
public Sobrecarga(){
strMsg = "Sobrecarga";
system.out.println(strMsg);
}
public Sobrecarga(int i, int j){
int iResultado = i+j;
system.out.println(iResultado);
}
}
É bem simples. Espero ter ajudado.
Abraço.
Bom dia..
Segundo aprendi pode-se se ter ate 3 construtores numa so classe..
ha varia nomeclaturas para eles.
Em portugal (Onde estou a Comer Java) chamam eles : Construtor de Copia, construtor por defeito e construtor rural...
//Construtor por defeito
public class xpto{
private int x;
private int y;
xtpt(){
this.x=0;
this.y=0;}
//Construtor por Rural
public class xpto{
private int x;
private int y;
xtpt( int X, int Y){
this.x=X;
this.y=Y;}
//Construtor por Copia
public class xpto{
private int x;
private int y;
xtpt(xpto Other){
this.x=Other.x;
this.y=Other.y;}
Qual o beneficio de se usar dois construtores?
Abraços
Depende do seu propósito.
Por exemplo, você criar um objeto com valores padrão, caso não sejam informados os parâmetros.
public class Exemplo{
String nome;
int idade;
//Construtor pra inicializar campos com valores padrão
public Exemplo(){
nome = "Eugênio";
idade = 24;
}
//Construtor pra inicializar somente idade com o valor informado pelo usuário
public Exemplo(int i){
idade = i;
}
//Contrutor pra inicializar somente nome com o valor informado pelo usuário
public Exemplo(String n){
nome = n;
}
//Restante do código
}
Aí alguns exemplos, cara...
Bom dia…Segundo aprendi pode-se se ter ate 3 construtores numa so classe…
ha varia nomeclaturas para eles.
Em portugal (Onde estou a Comer Java) chamam eles : Construtor de Copia, construtor por defeito e construtor rural…
Não ha limite para o numero de construtores em uma classe. Isso que vc enumerou são tipos de construtores.
Seguinte, até onde sei, para fazer mais de um construtor, você tem que diferenciá-los pela sua assinatura (nos seus parâmetros).
Creio que uma classe pode ter seu nº de construtores igual ao nº de TIPOS de atributos que tem +2 (+ um, q seria o vazio, e + outro, que seria com todos atributos)… alem de várias combinações entre estes tipos e atributos.
obs: não limitei o nº de construtores, apenas dei uma ideia da quantidade que se pode ter
se estiver enganado, corrija, mas creio que seja isso mesmo.
Ex:
uma classe com 3 construtores diferentes. (se usar a criatividade, ainda pode ter mais.
public class Construct{
int idade;
int altura;
//sem parametros
public Construct(){
idade = 0;
altura =0;
}
//com 1 parametro (idade)
public Construct(int idade){
this.idade = idade;
this.altura =0;
}
//com 2 parametros (idade, altura)
public Construct(int idade, int altura){
this.idade = idade;
this.altura = altura;
}
public void print(){
System.out.println("idade" + this.idade + "altura" + this.altura);
}
public static void main(String[] args){
int valoridade = 1;
int valoraltura = 2;
Construct con = new Construct();
Construct con1 = new Construct(valoridade);
Construct con2 = new Construct(valoridade, valoraltura);
con.print();
con1.print();
con2.print();
}
}
Entendi… valeu pimenta e rafaeldiego.
So uma coisa rafaeldiego, no seu codigo:
public Construct(int idade){
this.idade = idade;
this.altura = 0;
}
Esse this.altura = 0, nao precisaria do this ne… eu testei aqui e funcionou corretamente. Ja vi o pessoal falando que as vezes é usado o this mesmo sem nem precisar, porque ajuda na leitura do codigo…
Usar o this prejudica alguma coisa na velocidade de execução do projeto? Nao ne?
Abraços
o this referencia a propria classe, vc nao precisa colocar, serve para distinguir exemplo
public void meuMetodo(int var) {
// atribui para a variavel da classe o valor do parametro
this.var = var;
}
o super faz a mesma coisa com o pai
public Construtor() {
// chama o construtor sem parametros do pai (herança)
super();
}
parece que tá todo mundo afiado em construtores aqui… 
Nao entendi muito bem o que voce quis dizer sobre o super… poderia dar um exemplo favor favor? Obrigado.
Abraços
Ele quis dizer, creio eu, que o super() chama o construtor sem parâmetros da classe pai.
Se você usar super(idade), sendo idade um int, vai ser chamado o construtor com um parâmetro int da classe pai…
Pegou?
Ele quis dizer, creio eu, que o super() chama o construtor sem parâmetros da classe pai.
Se você usar super(idade), sendo idade um int, vai ser chamado o construtor com um parâmetro int da classe pai…Pegou?
Entendi sim pimenta… brigadao 
Abraços
o que é um construtor vazio também chamado de construtor PADRÃO