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.