Boa noite,
Sou iniciante em programação orientada a objetos (utilizando java), estou realizando o seguinte código:
<strong>public class Data</strong> {
private int dia;
private int mes;
private int ano;
//método construtor
public Data(int d, int m, int a){
this.setDia(d);
this.setMes(m);
this.setAno(a);
}
public Data(int d , int m){
this(d,m,0);
}
public Data(int d){
this(d, 0);
}
public Data(){
this(0);
}
// métodos de encapsulamento da classe
public int getDia(){ //método de acesso
return dia;
}
public void setDia(int dia){ //metodo de modificação
if(dia>=1 && dia<=31){
this.dia = dia;
}
else{
// System.err.println("Dia informado invalido.");
this.dia=1;
}
}
public int getMes(){
return mes;
}
public void setMes(int mes){
if(mes>=1 && mes<=12){
this.mes=mes;
}
else{
//System.err.println("Mês informado invalido.");
this.mes=1;
}
}
public int getAno(){
return ano;
}
public void setAno(int ano){
this.ano=ano;
}
public void mostrarData(){
System.out.printf("%02d/%02d/%04d\n",dia, mes,ano);
}
}
<strong>public class Pessoa {</strong>
private int cpf;
private String nome;
private Data dataNascimento;
public int getCpf(){
return cpf;
}
public void setCpf(int cpf){
this.cpf=cpf;
}
public String getNome(){
return nome;
}
public void setNome(String nome){
this.nome=nome;
}
public Data getDatanascimento(){
return dataNascimento;
}
public void setDatanascimento(Data dataNascimento){
this.dataNascimento=dataNascimento;
}
void mostrarData(){
System.out.println("CPF: "+cpf);
System.out.println("Nome: "+nome);
System.out.print("Data nascimento: ");
dataNascimento.mostrarData();
}
}
public class PrincipalPessoa {
Data dt = new Data();
Pessoa obj = new Pessoa();
Scanner input = new Scanner(System.in);
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
PrincipalPessoa novoObj = new PrincipalPessoa();
int op = 0;
while (op != 3) {
System.out.print("1-Cadastrar");
System.out.println("");
System.out.print("2-Imprimir");
System.out.println("");
System.out.print("Escolha uma opção: ");
op = entrada.nextInt();
switch (op) {
case 1:
novoObj.Cadastrar();
break;
case 2:
novoObj.Imprimir();
break;
}
}
}
void Cadastrar() {
System.out.print("Entre com o Nome: ");
String Nome = input.nextLine();
obj.setNome(Nome);
System.out.print("Entre com o CPF: ");
int Cpf = input.nextInt();
obj.setCpf(Cpf);
System.out.print("Entre com o Dia do nascimento: ");
int D = input.nextInt();
dt.setDia(D);
System.out.print("Entre com o Mês de nascimento: ");
int M = input.nextInt();
dt.setMes(M);
System.out.print("Entre com o Ano do nascimento: ");
int A = input.nextInt();
dt.setAno(A);
}
void Imprimir() {
this.obj.mostrarData();
System.out.println();
}
}
A primeira classe(Data), é para fazer a validação da data de nascimento. Não estou conseguido exibir a data de nascimento no método void imprimir, gostaria de saber como faço isso. Desde já agradeço.