[Resolvido] Dúvida - Construtor com Parâmetros

2 respostas Resolvido
Delon

Buenas!

Estou começando a aprender Java e surgiu uma dúvida que não consegui achar a solução.
Possuo três classes: <Data>, <Pessoa> e <TestePessoa>

public class Data {	
	protected int dia;
	protected int mes;
	protected int ano;	
	public Data (int dia, int mes, int ano){
		this.dia = dia;
		this.mes = mes;
		this.ano = ano;
	}	
	public String printData(){
		return +dia +"/" +mes +"/" +ano;
	}	
}
public class Pessoa {	
	protected String nome;
	protected Data nascimento;
	protected String profissao;	
	public Pessoa (String nome, Data nascimento, String profissao){
		this.nome = nome;
		this.nascimento = nascimento;
		this.profissao = profissao;
	}	
	public void printDados(){
		System.out.println("Nome: " +nome);
		System.out.println("Nascimento: " +nascimento.printData());
		System.out.println("Profissão: " +profissao);
	}
}
public class TestePessoa {	
	public static void main(String[] args) {		
		Data d1 = new Data(14, 07, 1980);
		Pessoa p1 = new Pessoa("Delon", d1, "Projetista");		
		p1.printDados();		
	}	
}

Minha dúvida é referente ao construtor da classe <Pessoa>, mais precisamente, em relação ao atributo <nascimento>, da classe <Data>.

Se eu executar a classe <TestePessoa> do jeito que está, ocorrerá tudo normalmente, porém, eu gostaria de saber se há a possibilidade de eu não criar uma variável local para instanciar uma <Data> (nesse caso, a d1) antes de instanciar uma <Pessoa>.

Ou seja, gostaria de saber se daria para eu instanciar a <Data>, diretamente do construtor da classe <Pessoa>, algo como por exemplo:

public class TestePessoa {	
	public static void main(String[] args) {		
		Pessoa p1 = new Pessoa("Delon", (14, 10, 2015), "Projetista");
OU
		Pessoa p1 = new Pessoa("Delon", (Data d1 = new Data(14, 10, 2015)), "Projetista");
		p1.printDados();		
	}	
}

Existe essa possibilidade? Creio que haja algo que possa ser feito no construtor da classe pessoa, instanciando lá já, porém, gostaria de saber se há algo parecido com o que coloquei acima.

Muito obrigado!
Delon.

2 Respostas

pmlm
Solucao aceita

A tua segunda forma está quase correta:

Pessoa p1 = new Pessoa("Delon",  new Data(14, 10, 2015) , "Projetista");
Delon

Muito obrigado!

Abraços.

Criado 6 de outubro de 2015
Ultima resposta 6 de out. de 2015
Respostas 2
Participantes 2