Dúvida básica, mas muito básica mesmo

Estou com uma dúvida muito basicona…mas vai la.

Nesse código abaixo, a primeira classe eu sei q é a principal, mas e as outras duas? são o q nela?


public class Pessoa {

private String nome;
private char sexo;
private Data dataNascimento;
private String endereco;
private int rg;

public Pessoa(String nome,char sexo,String endereco, Data dataNascimento,int rg){
	
	this.nome = nome;
	this.sexo = sexo;
	this.dataNascimento = dataNascimento;
	this.endereco = endereco;
	this.rg =rg;
	
}

public Pessoa(String nome,char sexo,String endereco,int dia,int mes,int ano,int rg){

	this(nome,sexo,endereco,new Data(dia,mes,ano),rg);
}

[quote=jason_bourne]Estou com uma dúvida muito basicona…mas vai la.

Nesse código abaixo, a primeira classe eu sei q é a principal, mas e as outras duas? são o q nela?

[code]

public class Pessoa {

private String nome;
private char sexo;
private Data dataNascimento;
private String endereco;
private int rg;

public Pessoa(String nome,char sexo,String endereco, Data dataNascimento,int rg){

this.nome = nome;
this.sexo = sexo;
this.dataNascimento = dataNascimento;
this.endereco = endereco;
this.rg =rg;

}

public Pessoa(String nome,char sexo,String endereco,int dia,int mes,int ano,int rg){

this(nome,sexo,endereco,new Data(dia,mes,ano),rg);

}

[/code][/quote]

Aqui há UMA classe e DOIS construtores. Nenhum deles é o “principal”; não existe uma coisa como um “construtor principal” mas sim um “construtor default”, que é o construtor “sem parâmetros” e que é automaticamente criado pelo compilador, se você não definir nenhum construtor.

[quote=thingol]

Aqui há UMA classe e DOIS construtores. Nenhum deles é o “principal”; não existe uma coisa como um “construtor principal” mas sim um “construtor default”, que é o construtor “sem parâmetros” e que é automaticamente criado pelo compilador, se você não definir nenhum construtor.[/quote]

kra vlw mesmo…mas me diga, eu até agora não entendi pq nesse código tem dois construtores, vc sabe me dizer o motivo?

So existe uma classe Pessoa.
As outras duas que vc ve nao sao classes.
Na verdade sao construtores. Metodos com o
mesmo nome da classe que servem para
criar, instanciar objetos do tipo Pessoa.

UPDATE:

O cache me pegou. Ja havia sido respondido.
A razao de haver dois ou ate mais construtores
chama-se sobrecarga de metodos. OU seja,
mesmo nome e assinatura diferente.
Digamos que vc crie uma classe Quadrado.
E vc cria um construtor que recebe o LADO e
outro que nao recebe nada.
Assim vc tem duas opcoes de criar objetos,
ja conhecenco o LADO ou nao conhecendo.
Esse ultimo vc poderia usar o lado depois
com um metodo SET por exemplo.

[quote=micheljuca]So existe uma classe Pessoa.
As outras duas que vc ve nao sao classes.
Na verdade sao construtores. Metodos com o
mesmo nome da classe que servem para
criar, instanciar objetos do tipo Pessoa.[/quote]

Então, mas vc entendeu pq tem dois construtores? pois eu não entendi, não deveria ter um só?

Ela tem dois construtores para dar uma opção ao programador - se ele quer passar ano, mês ou dia separados, ou então um objeto java.util.Date. É a mesma coisa que você poder pagar uma compra com cartão de crédito ou de débito; é só questão de comodidade.

[quote=thingol]Ela tem dois construtores para dar uma opção ao programador - se ele quer passar ano, mês ou dia separados, ou então um objeto java.util.Date. É a mesma coisa que você poder pagar uma compra com cartão de crédito ou de débito; é só questão de comodidade.
[/quote]

ha blz…vlw :slight_smile: