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

6 respostas
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?

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);
}

6 Respostas

T
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?

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);
}

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.

jason_bourne

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.

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?

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.

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.

jason_bourne

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.

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

T

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.

jason_bourne

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.

ha blz…vlw :slight_smile:

Criado 27 de março de 2006
Ultima resposta 27 de mar. de 2006
Respostas 6
Participantes 3